o
    6ch                     @   s  d dl mZ d dlmZ G dd dejZG dd dejZG dd dejZG d	d
 d
ejZG dd dejZ	G dd dejZ
G dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZG dd dejZdS )    )models)slugifyc                       s   e Zd ZdZejddZejdddZejddZ	e
 ZejddZejddZejdddd	Zejdd
ZejddZ fddZdd Z  ZS )Coursez3Main course model representing educational programs   
max_lengthT)r   uniquei  d   zcourses/banners/	upload_toblanknull)auto_now_add)auto_nowc                    s(   | j s	t| j| _ t j|i | d S N)slugr   titlesupersave)selfargskwargs	__class__ #/var/www/apihucms/courses/models.pyr      s   zCourse.savec                 C   s   | j S r   )r   r   r   r   r   __str__   s   zCourse.__str__)__name__
__module____qualname____doc__r   	CharFieldr   	SlugFieldr   short_description	TextFieldoverviewdurationcategory
ImageFieldbanner_imageDateTimeField
created_at
updated_atr   r   __classcell__r   r   r   r   r      s    r   c                   @   sB   e Zd ZdZejeejddZe	 Z
e	 Ze	 Zdd ZdS )CourseEligibilityz!Eligibility criteria for a courseeligibility	on_deleterelated_namec                 C      d| j j S )NzEligibility for courser   r   r   r   r   r   !      zCourseEligibility.__str__N)r   r   r    r!   r   OneToOneFieldr   CASCADEr6   r%   academic_qualificationminimum_marksentrance_examr   r   r   r   r   r/      s    r/   c                   @   sB   e Zd ZdZejeejddZej	ddZ
ej	ddZdd ZdS )		CourseFeezFee structure for a coursefeesr1   r	   r   c                 C   r4   )Nz	Fees for r5   r   r   r   r   r   +   r7   zCourseFee.__str__N)r   r   r    r!   r   r8   r   r9   r6   r"   domesticinternationalr   r   r   r   r   r=   %       r=   c                   @   sr   e Zd ZdZejeejddZej	ddZ
ej	ddZej	ddZej	ddZej	ddZejddZdd	 Zd
S )	FeeDetailzDetailed fee breakdown by yeardetailsr1   r	   r   Fdefaultc                 C   s   | j  d| jjj S )Nz for )fee_head
course_feer6   r   r   r   r   r   r   9   s   zFeeDetail.__str__N)r   r   r    r!   r   
ForeignKeyr=   r9   rG   r"   rF   
first_yearsecond_year
third_yearfourth_yearBooleanFieldis_one_timer   r   r   r   r   rB   /   s    rB   c                   @   s^   e Zd ZdZejeejddZej	ddZ
ej	dddZej	dddZejddZd	d
 ZdS )	HostelFeezHostel fee structure
hostel_feer1   r	   r   Tr   r   r   c                 C   r4   )NzHostel fees for r5   r   r   r   r   r   E   r7   zHostelFee.__str__N)r   r   r    r!   r   r8   r   r9   r6   r"   fee_per_yearac_room_additionalsecurity_depositr%   notesr   r   r   r   r   rO   =   s    rO   c                   @   sL   e Zd ZdZejeejddZej	ddZ
e ZG dd dZdd	 Zd
S )SemesterzSemester in a course	semestersr1   r	   r   c                   @   s   e Zd ZdgZdS )zSemester.MetanumberN)r   r   r    orderingr   r   r   r   MetaO   s    
r[   c                 C      | j  d| jj S Nz - namer6   r   r   r   r   r   r   R      zSemester.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r_   PositiveSmallIntegerFieldrY   r[   r   r   r   r   r   rW   I   s    rW   c                   @   sR   e Zd ZdZejeejddZej	ddZ
ej	ddZe Ze Zdd Zd	S )
SubjectzSubject in a semestersubjectsr1      r   r   c                 C   s   | j  d| j S r]   )coder_   r   r   r   r   r   ^   s   zSubject.__str__N)r   r   r    r!   r   rH   rW   r9   semesterr"   re   r_   ra   creditsr%   descriptionr   r   r   r   r   rb   V   s    rb   c                   @   sP   e Zd ZdZejeejddZej	ddZ
ej	dddZejdd	Zd
d ZdS )CareerProspectz0Career opportunities after completing the coursecareer_prospectsr1   r   r   r	   TrQ   rR   c                 C      | j  d| jj  S r]   r   r6   r   r   r   r   r   i   r`   zCareerProspect.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r   salary_ranger%   rh   r   r   r   r   r   ri   b   s    ri   c                   @   sB   e Zd ZdZejeejddZej	ddZ
ejddZdd	 Zd
S )	Recruiterz/Companies that recruit students from the course
recruitersr1   r   r   zcourses/recruiters/r   c                 C   r\   r]   r^   r   r   r   r   r   s   r`   zRecruiter.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r_   r)   logor   r   r   r   r   rn   m   rA   rn   c                   @   s>   e Zd ZdZejeejddZej	ddZ
e Zdd ZdS )	WhyJoinzReasons to join the coursewhy_joinr1   r   r   c                 C   rk   r]   rl   r   r   r   r   r   }   r`   zWhyJoin.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r   r%   rh   r   r   r   r   r   rr   w   s    rr   c                   @   sP   e Zd ZdZejeejddZej	ddZ
ejddZej	ddd	Zd
d ZdS )CourseHighlightzKey highlights of the course
highlightsr1   r   r   TrR   2   rQ   c                 C   rk   r]   rl   r   r   r   r   r      r`   zCourseHighlight.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r   r%   rh   iconr   r   r   r   r   rt      s    rt   c                   @   sN   e Zd ZdZejeejddZej	ddZ
ejddZejdd	Zd
d ZdS )CourseImagezImages related to the courseimagesr1   zcourses/gallery/rp   r   r   FrD   c                 C   rk   r]   rl   r   r   r   r   r      r`   zCourseImage.__str__N)r   r   r    r!   r   rH   r   r9   r6   r)   imager"   r   rM   	is_bannerr   r   r   r   r   rx      s    rx   c                   @   sf   e Zd ZdZejeejddZej	ddZ
ej	ddZej	ddZe ZejddddZd	d
 ZdS )Testimonialz%Student testimonials about the coursetestimonialsr1   r   r   zcourses/testimonials/Tr
   c                 C   r\   r]   r^   r   r   r   r   r      r`   zTestimonial.__str__N)r   r   r    r!   r   rH   r   r9   r6   r"   r_   positioncompanyr%   contentr)   photor   r   r   r   r   r|      s    r|   N)	django.dbr   django.utils.textr   Modelr   r/   r=   rB   rO   rW   rb   ri   rn   rr   rt   rx   r|   r   r   r   r   <module>   s    


