o
    5h                     @   sp   d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZ G dd deZdS )    N)BaseCommand)CourseCourseEligibility	CourseFee	HostelFeeSemesterSubjectCareerProspect	RecruiterWhyJoinCourseHighlightCourseImageTestimonial	FeeDetail)parse_datetimec                   @   s    e Zd ZdZdd Zdd ZdS )Commandz#Import course data from a JSON filec                 C   s   |j dtdd d S )N	json_filezPath to the JSON file)typehelp)add_argumentstr)selfparser r   C/var/www/apihucms/courses/management/commands/import_course_json.pyadd_arguments   s   zCommand.add_argumentsc                 O   s  t |d ddd}t|d }W d    n1 sw   Y  tjj|d |d |d |d	 |d
 |d |d |d rBt|d nd |d rMt|d nd dd\}}tjj||d d t	jj||d d |d d dd\}}|d d D ]}t
jj||d |d |d |d |d |d dd qztjj||d  d |d! D ]/}	tjj||	d" d#|	d# id$\}
}|	d% D ]}tjj|
|d& |d# |d' |d( d)d* qq|d+ D ]}tjj||d |d, |d( d-d. q|d/ D ]}tjj||d# d0|d0 id1 q|d2 D ]}tjj||d d(|d( id. q	|d3 D ]}tjj||d |d( |d4 d5d. q |d6 D ]}tjj||d |d7 |d8 d9d. q:|d: D ]}tjj||d# |d; |d< |d= |d> d?d1 qT| j| jd@ d S )ANr   rzutf-8)encodingcourseslugtitleshort_descriptionoverviewdurationcategorybanner_image
created_at
updated_at)r    r!   r"   r#   r$   r%   r&   r'   )r   defaultseligibility)r   r(   feesdomesticinternational)r+   r,   detailsfee_head
first_yearsecond_year
third_yearfourth_yearis_one_time)r/   r0   r1   r2   r3   )
course_feer.   r(   
hostel_fee	semestersnumbername)r   r7   r(   subjectscodecreditsdescription)r8   r;   r<   )semesterr:   r(   career_prospectssalary_range)r?   r<   )r   r    r(   
recruiterslogo)r   r8   r(   why_join
highlightsicon)r<   rD   imagesimage	is_banner)rF   rG   testimonialspositioncompanycontentphoto)rI   rJ   rK   rL   z.Course and related data imported successfully!)openjsonloadr   objectsget_or_creater   r   update_or_creater   r   r   r   r   r	   r
   r   r   r   r   stdoutwritestyleSUCCESS)r   argskwargsfdatar   _fee_objdetailsemsemester_objsubjcprecwjhlimgtr   r   r   handle   s   














zCommand.handleN)__name__
__module____qualname__r   r   rg   r   r   r   r   r   	   s    r   )rN   django.core.management.baser   courses.modelsr   r   r   r   r   r   r	   r
   r   r   r   r   r   django.utils.dateparser   r   r   r   r   r   <module>   s
    <