o
    ȟ1iz	                     @   s^   d dl mZmZmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZ G dd deeZdS )    )	ColumnStringIntegerDateFloat
ForeignKeyTextTimeBoolean)relationship)BaseTimestampMixinc                   @   s  e Zd ZdZeeddddZeeedddZeeedddZ	eeedddZ
eeed	ddZeeed
ddZeedddZeeddZeeddZeeddZeeddddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZeeddZ eeddZ!eeddZ"eeddZ#eeddZ$eeddZ%eeddZ&e'dZ(e'dZ)e'dZ*e'dZ+e'dZ,e'dddZ-e.dd Z/e.dd Z0dS )CoursecourseT)primary_keyautoincrementindexzcourse_category.idF)nullablezage_groups.idztime_slots.idzterm.idzacademic_year.id   )r   uniquer   )defaultTermCourseCategoryAgeGroupTimeSlotAcademicYearPaymentDetails)back_populatesc                 C   s   | j r	d| j  S | j S )Nz/images/)image)self r    /app/models/course.py	image_url*   s   zCourse.image_urlc                 C   s0   dd | j D }t|}t| td| j| S )Nc                 S   s   g | ]
}|j jd u r|qS )T)paymentZis_payment_completed).0pr    r    r!   
<listcomp>2   s    z)Course.remaining_seat.<locals>.<listcomp>r   )payment_detailslenprintmaxno_of_seats)r   Zcompleted_paymentsZpayment_countr    r    r!   remaining_seat0   s   zCourse.remaining_seatN)1__name__
__module____qualname____tablename__r   r   idr   Zcourse_category_idZage_group_idZtime_slot_idZterm_idacademic_year_idr   namer   descriptionZshort_descriptionr   Zskur   
start_dateend_dater	   Z
start_timeend_timer+   r   amountr
   Zis_bursary_productZtotal_no_termsZno_days_in_termZno_weeks_in_termZis_enable_waitlistZwaiting_list_limitZis_special_courseZrate_per_classZno_of_classesr   termcourse_category	age_group	time_slotacademic_yearr'   propertyr"   r,   r    r    r    r!   r      sL    
r   N)
sqlalchemyr   r   r   r   r   r   r   r	   r
   sqlalchemy.ormr   models.baser   r   r   r    r    r    r!   <module>   s   , 