§
    t�’jè"  ã                  óH   — d dl mZ d dlmZmZ d dlmZ  G d„ d¦  «        ZdS )é    )Úannotations)ÚdateÚ	timedelta)ÚAnyc                  óB   — e Zd ZdZedd„¦   «         Zedd„¦   «         ZdS )ÚWbsPhaseEarlyMixinz2Phase 1 & 2 WBS item generators with exact schema.Ú
base_startr   Úp1_startÚp1_endÚp1_daysÚintÚ	p1_amountÚfloatÚ	raw_itemsúlist[dict[str, Any]]Úreturnc                óD  — g }|                      ddd|                     ¦   «         |                     ¦   «         |dddd|dœ¦  «         |                     dd	d
dddt          |dz  dz  d¦  «        t          |dz  d¦  «        |                     ¦   «         |t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddddddt          |dz  d¦  «        t          |dz  d¦  «        |t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         |t	          t          |dz  dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddddddt          |dz  d¦  «        t          |dz  d¦  «        |t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         |                     ¦   «         t          |dz  d¦  «        ddddœg¦  «         |S )Nz1.0uK   Giai Ä‘oáº¡n 1: Chuáº©n bá»‹ máº·t báº±ng & Há»“ sÆ¡ phÃ¡p lÃ½ khá»Ÿi cÃ´ngÚphaser   Útodou   Ban QLDA & PhÃ¡p lÃ½é   ©Úwbs_codeÚ	task_nameÚ	task_typeÚ
start_dateÚend_dateÚduration_daysÚprogress_percentÚstatusÚassigned_roleÚ
sort_orderÚtotal_amount_vndz1.1uV   Kháº£o sÃ¡t tráº¯c Ä‘á»‹a, Ä‘á»‹nh vá»‹ tim trá»¥c & BÃ n giao má»‘c cao Ä‘á»™ chuáº©nÚtasku   Ä�iá»ƒm má»‘cé   g333333Ó?é   é   ©Údaysu   Ká»¹ sÆ° Tráº¯c Ä‘á»‹a©Úparent_wbs_coder   r   r   ÚunitÚquantityÚunit_price_vndr"   r   r   r   r   r    r!   z1.2uF   Láº­p & PhÃª duyá»‡t Biá»‡n phÃ¡p thi cÃ´ng, Káº¿ hoáº¡ch ATLÄ� & PCCCu   Bá»™ há»“ sÆ¡é   u   Chá»‰ huy trÆ°á»Ÿngz1.3uU   Huy Ä‘á»™ng mÃ¡y mÃ³c thiáº¿t bá»‹ Ä‘Ã o, láº¯p dá»±ng lÃ¡n tráº¡i & hÃ ng rÃ o táº¡mu   GÃ³igš™™™™™Ù?u   Ä�á»™i thi cÃ´ng cÆ¡ giá»›i©ÚappendÚ	isoformatÚextendÚroundr   Úmax)r	   r
   r   r   r   r   Ú	wbs_itemss          ú5C:\Projects\DSCons\app\services\ai_wbs\phase_early.pyÚ_build_phase_1_itemsz'WbsPhaseEarlyMixin._build_phase_1_items
   sk  € ð +-ˆ	Ø×Òà!ØjØ$Ø&×0Ò0Ñ2Ô2Ø"×,Ò,Ñ.Ô.Ø!(Ø$%Ø Ø!7ØØ$-ðð ñ	
ô 	
ð 	
ð 	×Òð (-Ø %Ø!yØ!'Ø+Ø !Ý&+¨I¸©O¸aÑ,?ÀÑ&CÔ&CÝ(-¨i¸#©o¸qÑ(AÔ(AØ"*×"4Ò"4Ñ"6Ô"6à ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%=Ø"#ð!ð ð& (-Ø %Ø!iØ!'Ø+Ø !Ý&+¨I¸©O¸QÑ&?Ô&?Ý(-¨i¸#©o¸qÑ(AÔ(Aà ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kà ¥9µ#°gÀ±kÀQÑ6FÈÑ2JÔ2JÐ#KÑ#KÔ#KÑKß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%:Ø"#ð%ð ð* (-Ø %Ø!xØ!'Ø"Ø !Ý&+¨I¸©O¸QÑ&?Ô&?Ý(-¨i¸#©o¸qÑ(AÔ(Aà ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kØ &× 0Ò 0Ñ 2Ô 2Ý%(¨°A©°qÑ%9Ô%9Ø$Ø%BØ"#ð!ð ðO9ñ;	
ô ;	
ð ;	
ð| Ðó    Úp2_startÚp2_endÚp2_daysÚ	p2_amountc                ó²  — g }|                      ddd|                      ¦   «         |                     ¦   «         |dddd|dœ¦  «         |                     dd	d
dddt          |dz  dz  d¦  «        t          |dz  d¦  «        |                      ¦   «         | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœddddddt          |dz  dz  d¦  «        t          |dz  d¦  «        | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         | t	          t          |dz  d¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        ddddœdddddd t          |d!z  d z  d¦  «        t          |d!z  d¦  «        | t	          t          |dz  d"¦  «        ¬¦  «        z                        ¦   «         | t	          t          |dz  dz  d#¦  «        ¬¦  «        z                        ¦   «         t          |dz  d¦  «        dd$d"dœdd%d&ddd't          |dz  d'z  d¦  «        t          |dz  d¦  «        | t	          t          |dz  dz  d(¦  «        ¬¦  «        z                        ¦   «         |                     ¦   «         t          |dz  d¦  «        dd)d*dœg¦  «         |S )+Nz2.0uG   Giai Ä‘oáº¡n 2: Thi cÃ´ng Ná»�n mÃ³ng & Háº¡ táº§ng ká»¹ thuáº­t ngáº§mr   r   r   u(   Ä�á»™i thi cÃ´ng XÃ¢y láº¯p & CÆ¡ giá»›ir.   r   z2.1uL   Ä�Ã o Ä‘áº¥t há»‘ mÃ³ng, lu lÃ¨n ná»�n Ä‘áº¥t & Váº­n chuyá»ƒn Ä‘áº¥t tháº£ir#   Úm3iŠ  g      Ð?r%   r&   é   r'   u   Tá»• mÃ¡y Ä‘Ã o PC200r)   z2.2u:   Ä�á»• bÃª tÃ´ng lÃ³t mÃ³ng M100 Ä‘Ã¡ 4x6 chiá»�u dÃ y 10cméU   g333333Ã?r$   é
   u   Tá»• BÃª tÃ´ngé   z2.3uQ   Gia cÃ´ng láº¯p dá»±ng cá»‘t thÃ©p & vÃ¡n khuÃ´n Ä‘Ã i mÃ³ng, dáº§m giáº±ng mÃ³ngu   Táº¥né   gffffffÖ?é   é   u   Tá»• Cá»‘t thÃ©p - VÃ¡n khuÃ´nz2.4uH   Ä�á»• bÃª tÃ´ng Ä‘Ã i giáº±ng mÃ³ng M300 & Nghiá»‡m thu KCS pháº§n mÃ³ngéð   é   u   Tá»• BÃª tÃ´ng & QA/QCé	   r/   )r9   r:   r;   r<   r5   s        r6   Ú_build_phase_2_itemsz'WbsPhaseEarlyMixin._build_phase_2_itemsc   s9  € ð +-ˆ	Ø×Òà!ØfØ$Ø&×0Ò0Ñ2Ô2Ø"×,Ò,Ñ.Ô.Ø!(Ø$%Ø Ø!KØØ$-ðð ñ	
ô 	
ð 	
ð" 	×Òð (-Ø %Ø!oØ!'Ø Ø #Ý&+¨I¸Ñ,<¸sÑ,BÀAÑ&FÔ&FÝ(-¨i¸$Ñ.>ÀÑ(BÔ(BØ"*×"4Ò"4Ñ"6Ô"6à ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%<Ø"#ð!ð ð& (-Ø %Ø!]Ø!'Ø Ø "Ý&+¨I¸Ñ,<¸rÑ,AÀ1Ñ&EÔ&EÝ(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kà ¥9µ#°gÀ±lÀBÑ2GÔ2GÐ#HÑ#HÔ#HÑHß’i‘k”kÝ%(¨°A©°qÑ%9Ô%9Ø$Ø%5Ø"#ð%ð ð* (-Ø %Ø!tØ!'Ø#Ø "Ý&+¨I¸Ñ,<¸rÑ,AÀ1Ñ&EÔ&EÝ(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±lÀAÑ2FÔ2FÐ#GÑ#GÔ#GÑGß’i‘k”kà ¥9µ#°gÀ±kÀQÑ6FÈÑ2KÔ2KÐ#LÑ#LÔ#LÑLß’i‘k”kÝ%(¨°A©°rÑ%:Ô%:Ø$Ø%EØ"#ð%ð ð* (-Ø %Ø!kØ!'Ø Ø #Ý&+¨I¸Ñ,<¸sÑ,BÀAÑ&FÔ&FÝ(-¨i¸$Ñ.>ÀÑ(BÔ(Bà ¥9µ#°gÀ±kÀQÑ6FÈÑ2KÔ2KÐ#LÑ#LÔ#LÑLß’i‘k”kØ &× 0Ò 0Ñ 2Ô 2Ý%(¨°A©°qÑ%9Ô%9Ø$Ø%=Ø"#ð!ð ðwMñO	
ô O	
ð O	
ðd Ðr8   N)r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   )
r9   r   r:   r   r;   r   r<   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr7   rI   © r8   r6   r   r      sc   € € € € € Ø<Ð<àðVð Vð Vñ „\ðVðp ðjð jð jñ „\ðjð jð jr8   r   N)Ú
__future__r   Údatetimer   r   Útypingr   r   rO   r8   r6   ú<module>rS      s}   ðØ "Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð ðGð Gð Gð Gð Gñ Gô Gð Gð Gð Gr8   