
    oGjT                    V   d Z ddlmZ ddlmZmZ ddlmZmZ  G d ded          Z G d	 d
ed          Z	 G d ded          Z
 G d ded          Z G d ded          Z G d ded          Z G d ded          Z G d ded          Z G d ded          ZdS )u   9-таблична SQLModel-схема доменної моделі ШТУ — без Streamlit та бізнес-логіки.    )annotations)datedatetime)FieldSQLModelc                      e Zd ZU  edd          Zded<    ed          Zded<    edd	          Zd
ed<   dZd
ed<   dZ	d
ed<   dS )	CompaniesNTdefaultprimary_key
int | Noneid)indexstrname)r   r   
str | Noneedrpoucontact_emailcontact_person)
__name__
__module____qualname__r   r   __annotations__r   r   r   r        2/var/www/fmcg.region.sumy.ua/fmcg/models/schema.pyr	   r	   	   s         U4T:::B::::D!!!D!!!!t4888F8888 $M$$$$!%N%%%%%%r   r	   T)tablec                  r    e Zd ZU dZ edd          Zded<    ed          Zded	<   ded
<   dZded<   dS )TechnologyClassesuf   Класи I–IV: IoT / ШІ-запаси / Трасування / Автономні системи.NTr
   r   r   uniquer   coder   r   description)	r   r   r   __doc__r   r   r   r"   r#   r   r   r   r   r      sp         ppU4T:::B::::T"""D""""III"K""""""r   r   c                      e Zd ZU dZ edd          Zded<    ed          Zded	<    ed
d          Zded<   ded<   ded<   dZ	ded<   dZ
ded<   dZded<   dZded<   dS )Requirementsu\   Редаговані правила — пороги живуть у БД, не в коді.NTr
   r   r   r    r   r"   ztechnologyclasses.idforeign_keyr   intclass_id	thresholdoperatorFbool	mandatory   criticality   deadline_daysr   recommendation)r   r   r   r$   r   r   r   r"   r*   r.   r0   r2   r3   r   r   r   r&   r&      s         ffU4T:::B::::T"""D""""E&<DIIIHIIIINNNMMMIKM!%N%%%%%%r   r&   c                      e Zd ZU  edd          Zded<    edd          Zded	<    eej        
          Z	ded<   dZ
ded<   dZded<   dZded<   dS )AssessmentsNTr
   r   r   companies.idr'   r)   
company_iddefault_factoryr   assessment_dater   expertdraftr   statuscertification_level)r   r   r   r   r   r   r7   r   todayr:   r;   r=   r>   r   r   r   r5   r5   (   s         U4T:::B::::edCCCJCCCC!E$*===O====FF&*******r   r5   c                      e Zd ZU  edd          Zded<    edd          Zded	<    ed
d          Zded<   dZded<   dZ	ded<   dZ
ded<   dS )AssessmentResultsNTr
   r   r   assessments.idr'   r)   assessment_idrequirements.idrequirement_idr   valuezbool | Nonemeetszfloat | Noneindex_contribution)r   r   r   r   r   r   rC   rE   rF   rG   rH   r   r   r   rA   rA   1   s         U4T:::B::::+;4HHHMHHHH%,=TJJJNJJJJEE'+++++++r   rA   c                      e Zd ZU  edd          Zded<    edd          Zded	<    ed
d          Zded<   dZded<   dZ	ded<   dZ
ded<   dS )NonconformitiesNTr
   r   r   rB   r'   r)   rC   rD   rE   r/   severityzdate | Nonedeadliner   r3   )r   r   r   r   r   r   rC   rE   rK   rL   r3   r   r   r   rJ   rJ   :   s         U4T:::B::::+;4HHHMHHHH%,=TJJJNJJJJH H    !%N%%%%%%r   rJ   c                      e Zd ZU dZ edd          Zded<    ed          Zded	<   dZd
ed<   ded<   ded<   dZ	ded<   dZ
ded<   dS )CertificationLevelsuQ   Межі рівнів 1/2/3 — двовимірний алгоритм §С.4.6.NTr
   r   r   r    r)   levelr   r   floatclass_min_indexoverall_min_indexALLr   class_scope   critical_threshold)r   r   r   r$   r   r   r   rO   r   rT   rV   r   r   r   rN   rN   C   s         [[U4T:::B::::d###E####DKr   rN   c                      e Zd ZU  edd          Zded<    edd          Zded	<   d
ed<   dZd
ed<    eej	                  Z
ded<   dS )ReportsNTr
   r   r   rB   r'   r)   rC   r   pathpdfformatr8   r   generated_at)r   r   r   r   r   r   rC   r[   r   nowr\   r   r   r   rX   rX   O   s         U4T:::B::::+;4HHHMHHHHIIIF"U8<@@@L@@@@@@r   rX   c                  ~    e Zd ZU  edd          Zded<    edd          Zded	<   d
ed<   dZded<   dZded<   dS )AuditScheduleNTr
   r   r   r6   r'   r)   r7   r   planned_dateplannedr   r=   r   note)	r   r   r   r   r   r   r7   r=   rb   r   r   r   r_   r_   W   s         U4T:::B::::edCCCJCCCCFDr   r_   N)r$   
__future__r   r   r   sqlmodelr   r   r	   r   r&   r5   rA   rJ   rN   rX   r_   r   r   r   <module>re      s   G  G " " " " " " # # # # # # # # $ $ $ $ $ $ $ $& & & & & & & & &# # # # # # # # #& & & & &84 & & & &+ + + + +($ + + + +, , , , , , , , ,& & & & &hd & & & &	  	  	  	  	 ($ 	  	  	  	 A A A A Ahd A A A A    HD      r   