
    B%iq0                        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 d dlmZmZ d dlmZ d dlZddlmZ  edgd	
      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d deej                        Z G d de      Z  G d de      Z! G d de      Z" G d d e      Z# G d! d"e      Z$ G d# d$e      Z%y)%    )ColumnIntegerBooleanDateTimeString
ForeignKey	TIMESTAMPTexttextEnumJSONUniqueConstraintfunc)CryptContext)sessionmakerrelationship)datetimeN   )Basebcryptauto)schemes
deprecatedc                      e Zd ZdZ eedd      Z e ed      d      Z e ed      d      Z	 eed      Z
 ee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      Z e ed      d      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z e ed      d      Z e ed      d      Z eed      Z eed      Z  eed      Z! e ed      dd      Z" e ed      d      Z# eedd	      Z$ eed      Z% e ed
      dd	      Z& ee'e(jR                        Z* ee'e(jR                  e(jR                        Z+ ee'd      Z, e-ddd      Z.y)CoursescoursesTprimary_keyindex   nullableuniquer"   r   F)defaultr"   
   nor%   r%   onupdateCourseModulescourseall, delete-orphanback_populatescascadeN)/__name__
__module____qualname____tablename__r   r   idr   	course_iduser_idcanvas_course_idtopictask_idskillsdegreeallocated_timemode_of_deliverytoner
   weblinkslanguagecontent_descriptioncontent_outcomestaxonomycontent_objectivescontent_summaryoutlinelearning_approachno_of_moduleslevel_of_difficultytype_of_assessmentno_of_questionsmarkdown_contentmarkdown_urlemailstatuscourse_stepcourse_imscc_url
is_deletedr	   r   utcnow
created_at
updated_at
deleted_atr   modules     0/var/www/html/content_weaver/db_config/models.pyr   r   
   s   M	T	6Bvc{T2IVC[40Gg56D)EVC[40GF3K$/FF3K$/FF3K$7NfSkD9&+-DdT*HfSkD1H 5dT2dT*Ht4TD1OTD)Gtd37T2M t<sd;Wt4OdT2&40L6#;td;EF3K$/F!e<Kft4r
D5AJ	8??;J	8??X__UJ	D1J?8MabGrZ   r   c                       e Zd ZdZ eedd      Z ee ed      d      Z e e	d      d      Z
 eed      Z e e	d      d      Z e e	d      d      Z eed      Z eed      Z edd	
      Zy)r+   course_modulesTr   z
courses.idFr!   r    r   rX   r/   N)r1   r2   r3   r4   r   r   r5   r   r6   r   module_titler
   module_subtopicestimated_time
assessmentrecommended_resoursesr;   r   r,   rY   rZ   r[   r+   r+   3   s    $M	T	6Bw
< 85II&+6LTD1OF3K$7Nsd3J"4$7D4(F)I>FrZ   r+   c                       e Zd ZdZ eedd      Z e ed      dd      Z e ed      d      Z	 ee
ej                        Zy	)

LoginStatelogin_statesTr   r    F)r"   r$   r!   r(   N)r1   r2   r3   r4   r   r   r5   r   statetenant_domainr	   r   rT   rU   rY   rZ   r[   re   re   A   sG    "M	T	6B6#;t<E6#;7M	8??;JrZ   re   c                      e Zd Z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      Z edd	d
      fZ edd      Z edd      Z edd      Zy)LMSPlatformlms_platformsTr   r    Fr!   i  issuer	client_idunique_platformname
Deploymentplatformr^   UserAccessTokenN)r1   r2   r3   r4   r   r   r5   r   rl   rh   	tenant_idtenant_namerm   client_secretrest_client_idrest_client_secretjwks_url	token_urlr
   accountsr   __table_args__r   deploymentsuserstokensrY   rZ   r[   rj   rj   I   s    #M	T	6BF3K%0F6#;6Mvc{T2It4Kvc{U3I6#;6MF3K$7Nsd;fSkE2Hvc{U3IdT*H 	;5FGN |JGK
;E-
CFrZ   rj   c                      e Zd ZdZ eedd      Z ee ed      d      Z e e	d      d      Z
 e e	d            Z e e	d            Z eeej                        Z ed	d
d      fZ edd      Z edd      Zy)rq   r~   Tr   lms_platforms.idFr!   r    r(   platform_iddeployment_idunique_deploymentro   rj   r^   rt   
deploymentN)r1   r2   r3   r4   r   r   r5   r   r   r   r   
context_idrp   r	   r   rT   rU   r   r}   r   rr   r   rY   rZ   r[   rq   rq   c   s    !M	T	6B*-?"@5QK6#;7Ms$J&+D	8??;J 	>QRN M-HH-EFrZ   rq   c                   L   e Zd ZdZ eedd      Z ee ed      d      Z ee ed      d      Z	 ee ed            Z
 ee      Z eed      Z eed      Z eed      Z eed      Z eeej&                  	      Z ed
d      Z edd      Z edd      Zy)rt   access_tokensTr   r   Fr!   zdeployments.idusers.idr(   rj   r   r^   rq   rs   N)r1   r2   r3   r4   r   r   r5   r   r   r   r7   r
   scopetokenrest_api_tokenrefresh_tokenr	   
expires_atr   rT   rU   r   rr   r   userrY   rZ   r[   rt   rt      s    #M	T	6B*-?"@5QK7J/?$@5QMWj45G4LE4%(ED40N4$/M	E2J	8??;JM(CHl8DJx8DrZ   rt   c                       e Zd ZdZdZdZy)SectionStatusactiveinactivedeletedN)r1   r2   r3   r   r   r   rY   rZ   r[   r   r      s    FHGrZ   r   c                       e Zd ZdZ eeddd      Z e ed      d      Z e ed      d      Z	 e e
e      dd      Z eed ed	            Z eed ed
            Z eddd      Zy)SectionsectionsTr   r   autoincrementr    r!   Fr   r"   server_defaultCURRENT_TIMESTAMP-CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Permissionsectionr-   r.   N)r1   r2   r3   r4   r   r   r5   r   rp   keyr   r   rP   r	   r   rU   rV   r   permissionsrY   rZ   r[   r   r      s    M	TT	JB&+-D
t
,C]F
 /0J
 KLJ |IOcdKrZ   r   c                   0   e Zd ZdZ eeddd      Z ee ed      d      Z e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 ed            Z eed ed            Z edd      Z edd      Zy)r   r   Tr   roles.idFr!   zsections.id0r   r"   1r   r   r   Roler^   r   N)r1   r2   r3   r4   r   r   r5   r   role_id
section_idr   createvieweditdeleter	   r   rU   rV   r   roler   rY   rZ   r[   r   r      s    !M	TT	JBWj4uEGM!:UKJGC%@F'#>D'#>DGC%@F/0J
 KLJ }=D9]CGrZ   r   c                   d    e Zd ZdZ eedd      Z eedd      Z e	dd      Z
 e	d	d      Zy
)r   rolesTr   Fr#   rs   r   r^   r   N)r1   r2   r3   r4   r   r   r5   r   rp   r   r   r   rY   rZ   r[   r   r      s;    M	T	6B&6D7E|FCKrZ   r   c                      e Zd ZdZ eedd      Z eed      Z eed      Z	 eed      Z
 eeddd      Z eed      Z eed      Z ee ed      d      Z ee ed	      d      Z e ed
      d      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z eed      Z  eed      Z! eed      Z" ee#e$jJ                        Z& eee$jJ                        Z' eee$jJ                  e$jJ                        Z( e)ddd      fZ* e+dd      Z, e+dd      Z- e+dd      Z. e+ddd      Z/y)rs   r   Tr   Fr!   )r$   r   r"   r(   r   r   r    r)   r   subunique_userro   rt   r   r^   rj   r   UserCourseLogzall, deleter.   N)0r1   r2   r3   r4   r   r   r5   r   rp   
first_name	last_namerO   password_hashr   	is_activer   r   r   r   r
   	lti_rolesr   activation_date
last_loginis_email_verifiedis_phone_verifiedphone_numberprofile_picture
departmenteducational_degreesubscription_packagesubscription_start_datesubscription_end_datesubscription_statussubscription_renewal_dater	   r   rT   last_launchrU   rV   r   r}   r   r   rr   r   course_logsrY   rZ   r[   rs   rs      s   M	T	6B&5)D.Jv-I6$dUCE6E2Mw-IWj4uEG*-?"@5QK
t
,Ctd+IX5O40Jw6w6&40LVd3O.J6!&48$X="8d; $7 &x$ ?HOO<K(//:J(//HOOTJ 	MBN -?FM'BHw7Dv}]KrZ   rs   c                   D   e Zd ZdZ eeddd      Z ee eddd      dd      Z ee ed	      d
      Z	 eed
      Z
 e ed      d
      Z ee ej                         d      Z ee ej                          ej                         d      Z edd      Zy)r   user_course_logsTr   r   CASCADE)ondeleter*   F)r"   r   r   r!   d   r   r   r*   r"   rs   r   r^   N)r1   r2   r3   r4   r   r   r5   r   r7   r   number_of_courser   typer	   r   nowrU   rV   r   r   rY   rZ   r[   r   r     s    &M	TT	JBWjiR[\gltxyG*-?"@5QKg6&+.D	($((*uMJ	($((*xtxxz\abJ }=DrZ   r   c                       e Zd ZdZ eeddd      Z eed      Z eed      Z ee	d      Z
 ee	d      Z ee ej                         d      Z ee ej                          ej                         d      Zy)	LMSCourseLoglms_course_logTr   Fr!   r   r   N)r1   r2   r3   r4   r   r   r5   r6   lms_course_idr
   course_infomigration_infor	   r   r   rU   rV   rY   rZ   r[   r   r     s~    $M	TT	JBw/I7U3M.KD51N	($((*uMJ	($((*xtxxz\abJrZ   r   )&
sqlalchemyr   r   r   r   r   r   r	   r
   r   r   r   r   r   passlib.contextr   sqlalchemy.ormr   r   r   enumdatabaser   pwd_contextr   r+   re   rj   rq   rt   strr   r   r   r   rs   r   r   rY   rZ   r[   <module>r      s    H  H  H  H ( 5   H:&A&cd &cR?D ?< <D$ D4F FL9$ 9$C ed e0D D8D4 D&^4 &^P>D >
c4 
crZ   