
    pie                         S r SSKJrJrJrJrJrJr  SSKJ	r	  SSK
J
r
  SSKJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)a  
Academy Domain Models

SQLAlchemy ORM models for the academy module including:
- Course: Main course entity
- Section: Course sections for organizing lessons
- Lesson: Individual lessons within courses
- Enrollment: User course enrollments
- Progress: User lesson progress tracking
    )ColumnIntegerStringText
ForeignKeyDateTime)relationship)datetime   )Basec                      \ rS rSrSrSr\" \SSS9r\" \	SS9r
\" \5      r\" \	5      r\" \	SSS	9r\" \\" S
SS9SS9r\" \	SS S	9r\" \	SS S	9r\" \SSS	9r\" \	5      r\" \	5      r\" SSSSS9r\" SSSSS9r\" SSSSS9rS rSrg)Course   zAcademy course modelacademy_coursesTprimary_keyautoincrementFnullabledraftr   defaultusers.idCASCADEondeletec                  J    [         R                  " 5       R                  S5      $ Nz%Y-%m-%dT%H:%M:%Sr
   nowstrftime     9/home/mario/Escritorio/thel4footbal/app/models/academy.py<lambda>Course.<lambda>       @W@WXk@lr#   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   r&      r'   r#   r   Sectioncourseall, delete-orphanselectinback_populatescascadelazyLessonselect
Enrollmentc                 V    SU R                    SU R                   SU R                   S3$ )Nz<Course(id=	, title='z', status='')>)idtitlestatusselfs    r$   __repr__Course.__repr__'   s*    TWWIYtzzl+dkk]RUVVr#   r"   N)__name__
__module____qualname____firstlineno____doc____tablename__r   r   r7   r   r8   r   description	thumbnailr9   r   
created_by
created_at
updated_atorder_indexresource_urlresource_namer	   sectionslessonsenrollmentsr<   __static_attributes__r"   r#   r$   r   r      s    %M	T	>B6E*E,KvIFUG<FJ!KV[\J8lmJ8lmJ5!<K&>L6NM IhH\cmnH8HFZaijG|HNbiqrKWr#   r   c                       \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	S
9r
\" \S	S
9r\" \5      r\" \S	SS9r\" \S	S S9r\" \S	S S9r\" SSS9r\" SSSSS9rS rSrg)r)   +   z+Course section model for organizing lessonsacademy_sectionsTr   academy_courses.idr   r   Fr   r   r   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   Section.<lambda>4   r'   r#   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   rU   5   r'   r#   r   rL   r.   r1   sectionr+   r,   r-   c                 V    SU R                    SU R                   SU R                   S3$ )Nz<Section(id=r5   z', course_id=)>)r7   r8   	course_idr:   s    r$   r<   Section.__repr__;   s+    dggYi

|=HXXZ[[r#   r"   N)r>   r?   r@   rA   rB   rC   r   r   r7   r   r[   r   r8   r   rD   rI   rG   rH   r	   r*   rM   r<   rO   r"   r#   r$   r)   r)   +   s    5&M	T	>Bw
+?) T_deI6E*E,K5!<K8lmJ8lmJ (:>F8IG[blmG\r#   r)   c                   F   \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	S
9r
\" \\	" SSS95      r\" \S	S
9r\" \5      r\" \S	S
9r\" \5      r\" \5      r\" \S	SS9r\" \S	SS9r\" \S	S S9r\" \S	S S9r\" \5      r\" \5      r\" SSS9r\" SSS9r\" SSSSS9rS rSrg)r1   ?   zIndividual lesson modelacademy_lessonsTr   rS   r   r   Fr   zacademy_sections.idzSET NULLr   r   r   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   Lesson.<lambda>M   r'   r#   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   ra   N   r'   r#   r   rM   rW   r)   Progresslessonr+   r2   r-   c                 V    SU R                    SU R                   SU R                   S3$ )Nz<Lesson(id=r5   z	', type='r6   )r7   r8   content_typer:   s    r$   r<   Lesson.__repr__W   s-    TWWIYtzzl)DDUDUCVVYZZr#   r"   N)r>   r?   r@   rA   rB   rC   r   r   r7   r   r[   
section_idr   r8   r   rD   rf   content_dataduration_minutesrI   r9   rG   rH   attachment_urlattachment_namer	   r*   rX   progress_recordsr<   rO   r"   r#   r$   r1   r1   ?   s    !%M	T	>Bw
+?) T_deI,AJ!WXJ6E*E,K&51L$<Lg5!<KFUG<F8lmJ8lmJF^NVnO (9=F9Y?G#JxQeltu[r#   r1   c                       \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	S
9r
\" \\	" SSS9S	S
9r\" \S	S S9r\" \5      r\" SSS9rS rSrg)r3   [   zUser course enrollment modelacademy_enrollmentsTr   r   r   r   Fr   rS   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   Enrollment.<lambda>b   s    AXAXYlAmr#   r   r   rN   rW   c                 V    SU R                    SU R                   SU R                   S3$ )Nz<Enrollment(id=
, user_id=z, course_id=rZ   )r7   user_idr[   r:   s    r$   r<   Enrollment.__repr__i   s+     	DLL>dnnM]]_``r#   r"   N)r>   r?   r@   rA   rB   rC   r   r   r7   r   ru   r[   r   enrolled_atcompleted_atr	   r*   r<   rO   r"   r#   r$   r3   r3   [   sq    &)M	T	>BWjiHSXYGw
+?) T_deI%9mnK&>L (=AFar#   r3   c                       \ rS rSrSrSr\" \SSS9r\" \\	" SSS9S	S
9r
\" \\	" SSS9S	S
9r\" \S	SS9r\" \5      r\" \S	S S9r\" SSS9rS rSrg)rc   m   z#User lesson progress tracking modelacademy_progressTr   r   r   r   Fr   zacademy_lessons.idr   r   c                  J    [         R                  " 5       R                  S5      $ r   r   r"   r#   r$   r%   Progress.<lambda>v   s    hllnF]F]^qFrr#   r1   rm   rW   c           
          SU R                    SU R                   SU R                   S[        U R                  5       S3	$ )Nz<Progress(id=rt   z, lesson_id=z, completed=rZ   )r7   ru   	lesson_idbool	completedr:   s    r$   r<   Progress.__repr__|   sF    twwiz$,,|DNNK[[ghlmqm{m{h|g}}  A  	Ar#   r"   N)r>   r?   r@   rA   rB   rC   r   r   r7   r   ru   r   r   r   rx   last_accessed_atr	   rd   r<   rO   r"   r#   r$   rc   rc   m   s    -&M	T	>BWjiHSXYGw
+?) T_deIw:I&>Lfu>rs (3EFFAr#   rc   N)rB   
sqlalchemyr   r   r   r   r   r   sqlalchemy.ormr	   r
   baser   r   r)   r1   r3   rc   r"   r#   r$   <module>r      sb   	 K J '  WT W2\d \([T [8a a$At Ar#   