Ë
    Çði¥  ã                   ó  — d dl Z d dlZd dlmZmZ d dlmZmZmZmZ d dl	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mZ d dlmZ  G d„ d	e j                  «      Z G d
„ de j                  «      Z G d„ de«      Z G d„ de«      Zy)é    N)ÚdatetimeÚtimezone)ÚAnyÚDictÚListÚOptional)ÚDateTimeÚEnumÚFloatÚ
ForeignKeyÚIntegerÚJSONÚStringÚText)ÚUUID)ÚMappedÚmapped_columnÚrelationship)ÚBasec                   ó   — e Zd ZdZdZdZdZy)ÚIrrigationMethodÚdripÚ	sprinklerÚfloodÚrainfedN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   © ó    úH/var/www/acinvestment.org/public_html/aci/backend/app/models/scenario.pyr   r      s   „ Ø€DØ€IØ€EØ�Gr    r   c                   ó   — e Zd ZdZdZdZdZy)ÚSeasonÚspringÚsummerÚautumnÚwinterN)r   r   r   r$   r%   r&   r'   r   r    r!   r#   r#      s   „ Ø€FØ€FØ€FØ�Fr    r#   c                   ó  — e Zd ZU dZ e ed¬«      dej                  ¬«      Ze	ej
                     e
d<    e ed«      d¬«      Ze	e   e
d	<    e ed¬«       ed
«      d¬«      Ze	eej
                        e
d<    e ed¬«       ed«      d¬«      Ze	eej
                        e
d<    e ed¬«       ed«      d¬«      Ze	ej
                     e
d<    eed¬«      Ze	e   e
d<    eed¬«      Ze	e   e
d<    eed¬«      Ze	e   e
d<    e eed¬«      d¬«      Ze	e   e
d<    eed¬«      Ze	e   e
d<    e eed¬«      d¬«      Ze	e   e
d<    eed¬«      Z e	e   e
d<    e ed«      d¬«      Z!e	ee      e
d<    e e"d¬«      d„ ¬«      Z#e	e$   e
d<    e e"d¬«      d„ d „ ¬!«      Z%e	e$   e
d"<    e&d#d¬$«      Z'e	ed#      e
d%<    e&d&egd'¬(«      Z(e	ed&      e
d)<    e&d*d¬$«      Z)e	d*   e
d+<    e&d,d-d¬.«      Z*e	ed,      e
d/<   y0)1ÚScenarioÚ	scenariosT©Úas_uuid©Úprimary_keyÚdefaultÚidéÿ   F©ÚnullableÚnamezgraft_combinations.idÚgraft_combination_idz	plants.idÚplant_idzsoil_profiles.idÚsoil_profile_idÚapplied_nitrogenÚapplied_phosphorusÚapplied_potassiumÚirrigationmethod)r4   Úirrigation_methodÚirrigation_frequency_daysÚseasonÚduration_daysé-   Ú	client_ip©r   c                  óH   — t        j                  t        j                  «      S ©N©r   Únowr   Úutcr   r    r!   ú<lambda>zScenario.<lambda>8   ó   € ´·±¼h¿l¹lÓ1K€ r    ©r/   Ú
created_atc                  óH   — t        j                  t        j                  «      S rD   rE   r   r    r!   rH   zScenario.<lambda><   s   € œŸ™¤X§\¡\Ó2€ r    c                  óH   — t        j                  t        j                  «      S rD   rE   r   r    r!   rH   zScenario.<lambda>=   s   € œŸ™¤h§l¡lÓ3€ r    )r/   ÚonupdateÚ
updated_atÚGraftCombination©Úback_populatesÚgraft_combinationÚPlantÚungrafted_scenarios)Úforeign_keysrR   ÚplantÚSoilProfileÚsoil_profileÚScenarioResultÚscenario)rR   ÚuselistÚresultsN)+r   r   r   Ú__tablename__r   r   ÚuuidÚuuid4r0   r   Ú__annotations__r   r4   Ústrr   r5   r   r6   r7   r   r8   Úfloatr9   r:   ÚSAEnumr   r<   r   r=   Úintr#   r>   r?   rA   r	   rK   r   rO   r   rS   rW   rY   r]   r   r    r!   r)   r)      s‹  … Ø€Má)Ù�TÔ¨°d·j±jô€Bˆˆt�y‰yÑó ñ &¡f¨S£k¸EÔB€Dˆ&�‰+ÓBÙ8EÙ�TÔ™JÐ'>Ó?È$ô9Ð˜& ¨$¯)©)Ñ!4Ñ5ó ñ -:Ù�TÔ™J {Ó3¸dô-€Hˆf�X˜dŸi™iÑ(Ñ)ó ñ *7Ù�TÔ™JÐ'9Ó:ÀUô*€O�V˜DŸI™IÑ&ó ñ '4°EÀEÔ&JÐ�f˜U‘mÓJÙ(5°eÀeÔ(LÐ˜˜u™ÓLÙ'4°UÀUÔ'KÐ�v˜e‘}ÓKÙ2?ÙÐÐ&8Ô9ÀEô3Ð�vÐ.Ñ/ó ñ .;¸7ÈUÔ-SÐ˜v c™{ÓSÙ*Ùˆv˜HÔ%°ô€FˆF�6‰Nó ñ "/¨wÀÔ!G€M�6˜#‘;ÓGÙ'4±V¸B³ZÈ$Ô'O€Iˆv�h˜s‘mÑ$ÓOÙ#0Ù˜$ÔÑ)Kô$€J��xÑ ó ñ $1Ù˜$ÔÙ2Ù3ô$€J��xÑ ó ñ ?KØ¨;ô?Ð�v˜hÐ'9Ñ:Ñ;ó ñ (4Ø˜x˜jÐ9Nô(€Eˆ6�(˜7Ñ#Ñ$ó ñ +7Ø kô+€L�&˜Ñ'ó ñ 3?Ø¨¸Uô3€GˆV�HÐ-Ñ.Ñ/ô r    r)   c                   óD  — e Zd ZU dZ e ed¬«      dej                  ¬«      Ze	ej
                     e
d<    e ed¬«       ed«      d¬«      Ze	ej
                     e
d	<    eed¬«      Ze	ee      e
d
<    eed¬«      Ze	ee      e
d<    eee¬«      Ze	ee      e
d<    eee¬«      Ze	eeef      e
d<    eee¬«      Ze	ee      e
d<    eed¬«      Ze	ee      e
d<    eed¬«      Ze	ee      e
d<    e ed¬«      d„ ¬«      Z e	e!   e
d<    e"dd¬«      Z#e	d   e
d<   y)rZ   Úscenario_resultsTr+   r-   r0   zscenarios.idFr2   Úscenario_idÚpredicted_yieldÚsurvival_probabilityrJ   Úrisk_factorsÚrecommended_adjustmentsÚgrowth_timelineÚconfidence_scoreÚai_analysisrB   c                  óH   — t        j                  t        j                  «      S rD   rE   r   r    r!   rH   zScenarioResult.<lambda>_   rI   r    rK   r)   r]   rQ   r[   N)$r   r   r   r^   r   r   r_   r`   r0   r   ra   r   rh   r   ri   r   rc   rj   r   Úlistrk   r   r   Údictrl   r   rb   rm   rn   r   ro   r	   rK   r   r   r[   r   r    r!   rZ   rZ   N   sX  … Ø&€Má)Ù�TÔ¨°d·j±jô€Bˆˆt�y‰yÑó ñ &3Ù�TÔ™J ~Ó6Àô&€K�˜Ÿ	™	Ñ"ó ñ 0=¸UÈTÔ/R€O�V˜H U™OÑ,ÓRÙ4AÀ%ÐRVÔ4WÐ˜& ¨%¡Ñ1ÓWÙ&3°DÀ$Ô&G€L�&˜˜c™Ñ#ÓGÙ6CÀDÐRVÔ6WÐ˜V D¨¨c¨¡NÑ3ÓWÙ)6°tÀTÔ)J€O�V˜D ™IÑ&ÓJÙ0=¸eÈdÔ0SÐ�f˜X e™_Ñ-ÓSÙ)6°tÀdÔ)K€K�˜ ™Ñ&ÓKÙ#0Ù˜$ÔÑ)Kô$€J��xÑ ó ñ $0°
È9Ô#U€Hˆf�ZÑ ÔUr    rZ   )Úenumr_   r   r   Útypingr   r   r   r   Ú
sqlalchemyr	   r
   rd   r   r   r   r   r   r   Úsqlalchemy.dialects.postgresqlr   Úsqlalchemy.ormr   r   r   Úapp.databaser   r   r#   r)   rZ   r   r    r!   ú<module>ry      sd   ðÛ Û ß 'ß ,Ó ,ç _× _Ó _Ý /ß >Ñ >å ô�t—y‘yô ôˆT�Y‰Yô ô0ˆtô 0ôfV�Tõ Vr    