
    $i|5                     ~   d dl mZmZmZmZ d dlmZmZmZm	Z	 d dl
m
Z
mZ d dlmZ d dlmZ d dl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      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      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/ d0e      Z% G d1 d2e      Z& G d3 d4e      Z' G d5 d6e      Z( G d7 d8e      Z) G d9 d:e      Z* G d; d<e      Z+ G d= d>e      Z, G d? d@e      Z- G dA dBe      Z. G dC dDe      Z/ G dE dFe      Z0 G dG dHe      Z1 G dI dJe      Z2 G dK dLe      Z3 G dM dNe      Z4 G dO dPe      Z5 G dQ dRe      Z6 G dS dTe      Z7 G dU dVe      Z8 G dW dXe      Z9 G dY dZe      Z: G d[ d\e      Z; G d] d^e      Z< G d_ d`e      Z= G da dbe      Z> G dc dde      Z? G de dfe      Z@ G dg dhe      ZA G di dje      ZB G dk dle      ZC G dm dne      ZD G do dpe      ZE G dq dre      ZF G ds dte      ZG G du dve      ZH G dw dxe      ZI G dy dze      ZJ G d{ d|e      ZK G d} d~e      ZL G d de      ZM G d de      ZN G d de      ZO G d de      ZP G d de      ZQ G d de      ZR G d de      ZS G d de      ZT G d de      ZU G d de      ZV G d de      ZWy)    )	BaseModelFieldEmailStr	validator)UnionListDictOptional)datetimedate)Decimal)FormNc                       e Zd ZU eedf   ed<   eedf   ed<   eedf   ed<   eedf   ed<   eedf   ed<   eedf   ed<   eedf   ed<   y)		UserLoginNrol_idrutbranch_office_id	full_nameemailphonehashed_password)__name__
__module____qualname__r   int__annotations__str     QC:\Users\jesus\OneDrive\Escritorio\proyecto_pie360\backend\app\backend\schemas.pyr   r   	   sk    #t)	sDy	CI&&S$Ydd39%%r   r   c                       e Zd ZU eed<   y)ForgotPasswordr   Nr   r   r   r   r   r   r   r    r"   r"          Jr   r"   c                   ,    e Zd ZU eed<   eed<   eed<   y)UpdatePassWordr   tokennew_passwordNr#   r   r   r    r&   r&      s    JJr   r&   c                   v    e Zd ZU eed<   eedf   ed<   dZeedf   ed<   eed<   eed<   eed<   eed<   eed	<   y)
Userr   Nr   customer_idr   r   r   passwordr   )r   r   r   r   r   r   r+   r   r   r   r    r*   r*      sB    KCI&&$(KsDy!(	HNJMJr   r*   c                   ~    e Zd ZU 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	<   y)

UpdateUserNr   r+   r   r   r   r   r,   current_password)r   r   r   r   r   r   r+   r   r   r   r   r   r,   r/   r   r   r    r.   r.   %   sR    FCKCOIsE3E3Hc c r   r.   c                   ,    e Zd ZU eed<   dZee   ed<   y)UserListpageNr   )r   r   r   r   r   r   r
   r   r   r   r    r1   r1   /   s    
IC#r   r1   c                       e Zd ZU eed<   y)RecoverUserr   Nr#   r   r   r    r4   r4   3   r$   r   r4   c                   "    e Zd ZU eed<   eed<   y)ConfirmEmailr   r'   Nr#   r   r   r    r6   r6   6   s    JJr   r6   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)RolListNr2   rol
   per_page)
r   r   r   r2   r
   r   r   r9   r   r;   r   r   r    r8   r8   ;   s(    D(3-C#Hcr   r8   c                   F    e Zd ZU dZee   ed<   eed<   dZee	e      ed<   y)RolNr+   r9   permissions)
r   r   r   r+   r
   r   r   r   r>   r   r   r   r    r=   r=   @   s(    !%K#%	H'+K$s)$+r   r=   c                   D    e Zd ZU dZeed<   dZeed<   dZe	e
e      ed<   y)	UpdateRolNr+   r9   r>   )r   r   r   r+   r   r   r9   r   r>   r
   r   r   r   r    r@   r@   E   s(    KCO'+K$s)$+r   r@   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)PermissionListNr2   
permissionr:   r;   )
r   r   r   r2   r
   r   r   rC   r   r;   r   r   r    rB   rB   K   s(    D(3- $J$Hcr   rB   c                   6    e Zd ZU eed<   eed<   dZee   ed<   y)
PermissionrC   permission_type_idNpermission_order_id)r   r   r   r   r   r   rG   r
   r   r   r    rE   rE   P   s    O)-#-r   rE   c                   D    e Zd ZU dZeed<   dZee   ed<   dZ	ee   ed<   y)UpdatePermissionNrC   rF   rG   )
r   r   r   rC   r   r   rF   r
   r   rG   r   r   r    rI   rI   U   s*    J(,,)-#-r   rI   c                       e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   dZee   ed<   eed<   y)UpdateSettings	tax_valueidentification_numberaccount_typeaccount_numberaccount_nameaccount_emailbankdelivery_costshop_addresspayment_card_urlr   prepaid_discountr   N)r   r   r   r   r   r   rV   r
   r   r   r    rK   rK   [   sP    N
I&'hsm'Jr   rK   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)TeachingListNr2   teaching_namer:   r;   )
r   r   r   r2   r
   r   r   rY   r   r;   r   r   r    rX   rX   j   (    D(3-#'M8C='Hcr   rX   c                       e Zd ZU eed<   y)StoreTeachingrY   Nr#   r   r   r    r\   r\   o       r   r\   c                       e Zd ZU dZeed<   y)UpdateTeachingNrY   )r   r   r   rY   r   r   r   r   r    r_   r_   r       M3r   r_   c                   X    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
eed<   y)
CourseListNr2   course_nameteaching_idr:   r;   )r   r   r   r2   r
   r   r   rc   r   rd   r;   r   r   r    rb   rb   v   6    D(3-!%K#%!%K#%Hcr   rb   c                   "    e Zd ZU eed<   eed<   y)StoreCourserd   rc   Nr   r   r   r   r   r   r   r   r    rg   rg   |   s    r   rg   c                   *    e Zd ZU dZeed<   dZeed<   y)UpdateCourseNrd   rc   )r   r   r   rd   r   r   rc   r   r   r   r    rj   rj      s    KKr   rj   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)CommuneListNcommune_name	region_id)	r   r   r   rm   r
   r   r   rn   r   r   r   r    rl   rl      s    "&L(3-&#Ix}#r   rl   c                   "    e Zd ZU eed<   eed<   y)StoreCommunern   communeNrh   r   r   r    rp   rp      s    NLr   rp   c                   *    e Zd ZU dZeed<   dZeed<   y)UpdateCommuneNrn   rq   )r   r   r   rn   r   r   rq   r   r   r   r    rs   rs      s    IsGSr   rs   c                   "    e Zd ZU dZee   ed<   y)
RegionListNregion_name)r   r   r   rv   r
   r   r   r   r   r    ru   ru      s    !%K#%r   ru   c                   "    e Zd ZU eed<   eed<   y)StoreRegionregionregion_remuneration_codeNr#   r   r   r    rx   rx      s    K!!r   rx   c                   *    e Zd ZU dZeed<   dZeed<   y)UpdateRegionNry   rz   )r   r   r   ry   r   r   rz   r   r   r    r|   r|      s    FC$(c(r   r|   c                   "    e Zd ZU dZee   ed<   y)NativeLanguageProficiencyListNnative_language_proficiency)r   r   r   r   r
   r   r   r   r   r    r~   r~      s    15#5r   r~   c                       e Zd ZU eed<   y)StoreNativeLanguageProficiencyr   Nr#   r   r   r    r   r      s    !$$r   r   c                       e Zd ZU dZeed<   y)UpdateNativeLanguageProficiencyNr   )r   r   r   r   r   r   r   r   r    r   r      s    '++r   r   c                   Z    e Zd ZU eed<   eed<   e ed       ed      fdedefd       Zy)CreateDocumentRequeststudent_namedocument_type_id.c                      | ||      S )N)r   r   r   )clsr   r   s      r    as_formzCreateDocumentRequest.as_form   s     %-
 	
r   N)	r   r   r   r   r   r   classmethodr   r   r   r   r    r   r      sB     !I $S	

 
 
r   r   c                   "    e Zd ZU dZee   ed<   y)DocumentListRequestNr   )r   r   r   r   r
   r   r   r   r   r    r   r      s    &*hsm*r   r   c                   >    e Zd ZU eed<   e ed      fdefd       Zy)UploadDocumentRequest
student_id.c                      | |      S )N)r   r   )r   r   s     r    r   zUploadDocumentRequest.as_form   s    
 j))r   N)r   r   r   r   r   r   r   r   r   r   r    r   r      s*    O s)** *r   r   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)FamilyMemberListNr2   family_memberr:   r;   )
r   r   r   r2   r
   r   r   r   r   r;   r   r   r    r   r      rZ   r   r   c                       e Zd ZU eed<   y)StoreFamilyMemberr   Nr#   r   r   r    r   r      r]   r   r   c                       e Zd ZU dZeed<   y)UpdateFamilyMemberNr   )r   r   r   r   r   r   r   r   r    r   r      r`   r   r   c                   X    e Zd ZU dZee   ed<   dZee   ed<   dZee	   ed<   dZ
eed<   y)StudentGuardianListNr2   r   namesr:   r;   )r   r   r   r2   r
   r   r   r   r   r   r;   r   r   r    r   r      s6    D(3- $J$E8C=Hcr   r   c                       e Zd ZU eed<   dZee   ed<   dZee   ed<   dZee	   ed<   dZ
ee	   ed<   dZee	   ed<   dZee	   ed<   dZee	   ed	<   dZee	   ed
<   dZee	   ed<   y)StoreStudentGuardianr   Nfamily_member_id	gender_idrM   r   father_lastnamemother_lastname	born_dater   celphone)r   r   r   r   r   r   r
   r   rM   r   r   r   r   r   r   r   r   r   r    r   r      s    O&*hsm*#Ix}#+/8C=/E8C=%)OXc])%)OXc])#Ix}#E8C="Hhsm"r   r   c                       e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee
   ed<   dZee
   ed<   dZee
   ed<   dZee
   ed<   dZee
   ed	<   dZee
   ed
<   dZee
   ed<   y)UpdateStudentGuardianNr   r   r   rM   r   r   r   r   r   r   )r   r   r   r   r
   r   r   r   r   rM   r   r   r   r   r   r   r   r   r   r    r   r      s     $J$&*hsm*#Ix}#+/8C=/E8C=%)OXc])%)OXc])#Ix}#E8C="Hhsm"r   r   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)NewsListNr2   titler:   r;   )
r   r   r   r2   r
   r   r   r   r   r;   r   r   r    r   r      s(    D(3-E8C=Hcr   r   c                       e Zd ZU eed<   eed<   eed<   dZee   ed<   e ed       ed       ed      fdededefd       Z	y)	StoreNewsr   short_descriptiondescriptionNimage.c                      | |||      S N)r   r   r   r   r   r   r   r   s       r    r   zStoreNews.as_form   s     /#
 	
r   )
r   r   r   r   r   r   r
   r   r   r   r   r   r    r   r      sf    JE8C= #Y!%c9	



 

 	

 

r   r   c            	           e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   e	 e
d       e
d       e
d      fdee   dee   dee   fd       Zy)
UpdateNewsNr   r   r   c                 :     | |r|nd |r|nd |r|      S d       S r   r   r   s       r    r   zUpdateNews.as_form  s4      %d3D/$'2
 	
 9=
 	
r   )r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r    r   r     s~    E8C='+x}+!%K#%  $Dz+/:%)$Z	

}

 $C=

 c]	

 

r   r   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)NationalityListNr2   nationalityr:   r;   )
r   r   r   r2   r
   r   r   r   r   r;   r   r   r    r   r     s(    D(3-!%K#%Hcr   r   c                       e Zd ZU eed<   y)StoreNationalityr   Nr#   r   r   r    r   r      s    r   r   c                       e Zd ZU dZeed<   y)UpdateNationalityNr   )r   r   r   r   r   r   r   r   r    r   r   #  s    Kr   r   c                   D    e Zd ZU dZee   ed<   dZee   ed<   dZ	eed<   y)
GenderListNr2   genderr:   r;   )
r   r   r   r2   r
   r   r   r   r   r;   r   r   r    r   r   '  s(    D(3- FHSM Hcr   r   c                       e Zd ZU eed<   y)StoreGenderr   Nr#   r   r   r    r   r   ,  s    Kr   r   c                       e Zd ZU dZeed<   y)UpdateGenderNr   )r   r   r   r   r   r   r   r   r    r   r   /  s    FCr   r   c                   X    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
eed<   y)
SchoolListNr2   school_namer+   r:   r;   )r   r   r   r2   r
   r   r   r   r   r+   r;   r   r   r    r   r   3  re   r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)StoreSchoolr   school_addressdirector_namecommunity_school_passwordNr#   r   r   r    r   r   9  s    ""r   r   c                   ^    e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   y)UpdateSchoolNr   r   r   r   )
r   r   r   r   r
   r   r   r   r   r   r   r   r    r   r   ?  s;    !%K#%$(NHSM(#'M8C='/3x}3r   r   c                   l    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZeed<   y)StudentListNr2   r   r   rM   r:   r;   )r   r   r   r2   r
   r   r   r   r   r   rM   r;   r   r   r    r   r   F  sE    D(3-C#E8C=+/8C=/Hcr   r   c                   J    e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   y)StudentAcademicInfoNspecial_educational_need_id	course_idsip_admission_year)	r   r   r   r   r
   r   r   r   r   r   r   r    r   r   M  s.    15#5#Ix}#(,,r   r   c                   b   e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)StudentPersonalInfoNrn   
commune_idr   proficiency_native_language_idproficiency_language_used_idrM   r   r   r   social_namer   r   addressr   r   native_languagelanguage_usually_used)r   r   r   rn   r
   r   r   r   r   r   r   rM   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   R  s    #Ix}# $J$#Ix}#48"HSM826 (3-6+/8C=/E8C=%)OXc])%)OXc])!%K#%#Ix}#!%K#%!GXc]!E8C=E8C=%)OXc])+/8C=/r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)StoreStudentrM   r   r   r   Nr#   r   r   r    r   r   e  s    Jr   r   c                      e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)UpdateStudentNrM   r   r   r   r   r   r   r   r   r   rn   r   r   r   r   r   r   r   r   r   )r   r   r   rM   r
   r   r   r   r   r   r   r   r   r   r   r   r   rn   r   r   r   r   r   r   r   r   r   r   r   r    r   r   k  s    +/8C=/E8C=%)OXc])%)OXc])!%K#%#Ix}##Ix}#E8C=E8C=!GXc]!#Ix}# $J$!%K#%%)OXc])48"HSM8+/8C=/26 (3-615#5#Ix}#(,,r   r   c                   l    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZeed<   y)CustomerListNr2   rM   r   company_namer:   r;   )r   r   r   r2   r
   r   r   rM   r   r   r   r;   r   r   r    r   r     sE    D(3-+/8C=/E8C="&L(3-&Hcr   r   c                   &   e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   y)StoreCustomerN
country_idrn   r   
package_idbill_or_ticket_idrM   r   	lastnamesr   r   r   r   r,   r   )r   r   r   r   r
   r   r   rn   r   r   r   rM   r   r   r   r   r   r   r   r,   r   r   r   r    r   r     s     $J$#Ix}# $J$ $J$'+x}++/8C=/E8C=#Ix}#!GXc]!"&L(3-&E8C=E8C="Hhsm" FHSM r   r   c                       e Zd ZU dZee   ed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   dZee   ed
<   dZee   ed<   dZee   ed<   dZee   ed<   y)UpdateCustomerNr   rn   r   r   r   rM   r   r   r   r   r   r   )r   r   r   r   r
   r   r   rn   r   r   r   rM   r   r   r   r   r   r   r   r   r   r    r   r     s     $J$#Ix}# $J$ $J$'+x}++/8C=/E8C=#Ix}#!GXc]!"&L(3-&E8C=E8C=r   r   c                   X    e Zd ZU dZee   ed<   dZeed<   dZee	   ed<   dZ
ee	   ed<   y)ProfessionalListNr2   r:   r;   rM   r   )r   r   r   r2   r
   r   r   r;   rM   r   r   r   r   r    r   r     s7    D(3-Hc+/8C=/E8C=r   r   c                   h    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   y
)StoreProfessionalrM   r   r   r   
birth_dater   r   r   r,   Nr   r   r   r   r   r   r   r   r    r   r     s0    JNJOLJKMr   r   c                       e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed	<   y)
UpdateProfessionalNr   rM   r   r   r   r   r   r   )r   r   r   r   r
   r   r   rM   r   r   r   r   r   r   r   r   r   r    r   r     ss     FHSM +/8C=/E8C=#Ix}#E8C= $J$!GXc]!E8C=r   r   c                   D    e Zd ZU dZee   ed<   dZeed<   dZee	   ed<   y)PackageListNr2   r:   r;   package_name)
r   r   r   r2   r
   r   r   r;   r   r   r   r   r    r   r     s(    D(3-Hc"&L(3-&r   r   c                   ,    e Zd ZU eed<   eed<   eed<   y)StorePackager   students_per_packageprofessionals_per_packageNr   r   r   r    r   r     s    ""r   r   c                   J    e Zd ZU dZee   ed<   dZee   ed<   dZ	ee   ed<   y)UpdatePackageNr   r   r   )
r   r   r   r   r
   r   r   r   r   r   r   r   r    r   r     s.    "&L(3-&*.(3-./3x}3r   r   c                   D    e Zd ZU dZee   ed<   dZeed<   dZee	   ed<   y)SpecialEducationalNeedListNr2   r:   r;   special_educational_needs)
r   r   r   r2   r
   r   r   r;   r   r   r   r   r    r   r     s)    D(3-Hc/3x}3r   r   c                       e Zd ZU eed<   y)StoreSpecialEducationalNeedr   Nr#   r   r   r    r   r     s    ""r   r   c                   "    e Zd ZU dZee   ed<   y)UpdateSpecialEducationalNeedNr   )r   r   r   r   r
   r   r   r   r   r    r  r    s    /3x}3r   r  c                   D    e Zd ZU dZee   ed<   dZeed<   dZee	   ed<   y)DocumentTypeListNr2   r:   r;   document)
r   r   r   r2   r
   r   r   r;   r  r   r   r   r    r  r    s(    D(3-Hc"Hhsm"r   r  c                   "    e Zd ZU eed<   eed<   y)StoreDocumentTyper   r  Nrh   r   r   r    r  r    s    Mr   r  c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)UpdateDocumentTypeNr   r  )	r   r   r   r   r
   r   r   r  r   r   r   r    r	  r	    s    &*hsm*"Hhsm"r   r	  )Xpydanticr   r   r   r   typingr   r   r	   r
   r   r   decimalr   fastapir   jsonr   r"   r&   r*   r.   r1   r4   r6   r8   r=   r@   rB   rE   rI   rK   rX   r\   r_   rb   rg   rj   rl   rp   rs   ru   rx   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r	  r   r   r    <module>r     sq   : : . . #   &	 &Y Y 9 ! !y ) 9 
i 
,) ,
,	 ,Y 
. .
.y .Y 9 
I Y  ) 9 
$) $9 I 
& &") ")9 )
6I 6%Y %,i ,
I 
+) +*I *y 
	  ) 
#9 
#
#I 
#y 

	 
&
 
&i 
y 	  
) 9  #) #49 4) -) -
0) 0&9 -I -29 !I !  Y   y  		 	   ') '
#9 #
4I 44 4
#) #49 4#y #
	 # #r   