Ë
    ¦#ijó1  ã                   ó¶   — d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
m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y)é    )Úfield_references)ÚNOT_PROVIDEDÚModel)Úreplace)Úcached_propertyé   )Ú	OperationÚOperationCategoryc                   ó^   ‡ — e Zd Zd	d„Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
ˆ fd„Zˆ xZS )
ÚFieldOperationc                 ó.   — || _         || _        || _        y ©N©Ú
model_nameÚnameÚfield)Úselfr   r   r   s       ú`/var/www/html/office/venv/lib/python3.12/site-packages/django/db/migrations/operations/fields.pyÚ__init__zFieldOperation.__init__
   s   € Ø$ˆŒØˆŒ	Øˆ�
ó    c                 ó6   — | j                   j                  «       S r   )r   Úlower©r   s    r   Úmodel_name_lowerzFieldOperation.model_name_lower   s   € à�‰×$Ñ$Ó&Ð&r   c                 ó6   — | j                   j                  «       S r   )r   r   r   s    r   Ú
name_lowerzFieldOperation.name_lower   s   € à�y‰y�‰Ó Ð r   c                 ó4   — | j                   |j                   k(  S r   )r   ©r   Ú	operations     r   Úis_same_model_operationz&FieldOperation.is_same_model_operation   s   € Ø×$Ñ$¨	×(BÑ(BÑBÐBr   c                 óZ   — | j                  |«      xr | j                  |j                  k(  S r   )r    r   r   s     r   Úis_same_field_operationz&FieldOperation.is_same_field_operation   s,   € à×(Ñ(¨Ó3ò 8Ø—‘ 9×#7Ñ#7Ñ7ð	
r   c                 ó¸   — |j                  «       }|| j                  k(  ry| j                  r.t        t	        || j                  f| j                  ||f«      «      S y)NTF)r   r   r   Úboolr   )r   r   Ú	app_labelr   s       r   Úreferences_modelzFieldOperation.references_model    s\   € Ø—Z‘Z“\ˆ
Ø˜×.Ñ.Ò.ØØ�:Š:ÜÜ Ø × 5Ñ 5Ð6Ø—J‘JØ 
Ð+óóð ð r   c                 óô  ‡— |j                  «       }|| j                  k(  r�‰| j                  k(  ry| j                  r�t	        | j                  d«      r‰| j                  j
                  v ry| j                  j                  r<t        ˆfd„t        j                  | j                  j                  «      D «       «      ry| j                  €yt        t        || j                  f| j                  ||f‰«      «      S )NTÚfrom_fieldsc              3   ó,   •K  — | ]  ^}}|‰k(  –— Œ y ­wr   © )Ú.0Ú
field_nameÚ_r   s      €r   ú	<genexpr>z2FieldOperation.references_field.<locals>.<genexpr>:   s"   øè ø€ ò 2à&˜
 Qð  $Õ&ñ2ùs   ƒF)r   r   r   r   Úhasattrr(   Ú	generatedÚanyr   Ú_get_expr_referencesÚ
expressionr$   r   )r   r   r   r%   r   s     `  r   Úreferences_fieldzFieldOperation.references_field.   sÚ   ø€ Ø%×+Ñ+Ó-Ðà˜t×4Ñ4Ò4Ø�t—y‘yÒ ØØ�zŠzä˜DŸJ™J¨Ô6Ø §
¡
× 6Ñ 6Ñ6àØ—Z‘Z×)Ò)¬có 2ä*/×*DÑ*DØŸ
™
×-Ñ-ó+ô2ô /ð  à�:‰:ÐØÜÜØ˜D×1Ñ1Ð2Ø—
‘
ØÐ,Ð-Øó	ó
ð 	
r   c                 óx   •— t         ‰| �  ||«      xs( |j                  | j                  | j                  |«       S r   )ÚsuperÚreducer4   r   r   ©r   r   r%   Ú	__class__s      €r   r7   zFieldOperation.reduceM   s<   ø€ Ü‰w‰~˜i¨Ó3ò 
¸9×;UÑ;UØ�O‰O˜TŸY™Y¨	ó<
ð 8
ð 	
r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r    r"   r&   r4   r7   Ú__classcell__©r9   s   @r   r   r   	   sO   ø„ óð
 ñ'ó ð'ð ñ!ó ð!òCò
òò
÷>
ð 
r   r   c                   ót   ‡ — e Zd ZdZej
                  Zd
ˆ fd„	Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zˆ fd	„Zˆ xZS )ÚAddFieldzAdd a field to a model.c                 ó6   •— || _         t        ‰| �	  |||«       y r   ©Úpreserve_defaultr6   r   ©r   r   r   r   rC   r9   s        €r   r   zAddField.__init__X   ó   ø€ Ø 0ˆÔÜ‰Ñ˜ T¨5Õ1r   c                 ó¶   — | j                   | j                  | j                  dœ}| j                  dur| j                  |d<   | j                  j
                  g |fS ©Nr   TrC   ©r   r   r   rC   r9   r:   ©r   Úkwargss     r   ÚdeconstructzAddField.deconstruct\   óV   € àŸ/™/Ø—I‘IØ—Z‘Zñ
ˆð
 × Ñ ¨Ñ,Ø)-×)>Ñ)>ˆFÐ%Ñ&Ø—‘×'Ñ'¨¨VÐ4Ð4r   c                 ó~   — |j                  || j                  | j                  | j                  | j                  «       y r   )Ú	add_fieldr   r   r   rC   ©r   r%   Ústates      r   Ústate_forwardszAddField.state_forwardsf   s1   € Ø�‰ØØ×!Ñ!Ø�I‰IØ�J‰JØ×!Ñ!õ	
r   c                 óÖ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r�|j                   j                  || j                  «      }|j                  j                  | j                  «      }| j                  s| j                  j                  |_        |j                  ||«       | j                  st        |_        y y y r   )ÚappsÚ	get_modelr   Úallow_migrate_modelÚ
connectionÚaliasÚ_metaÚ	get_fieldr   rC   r   ÚdefaultrN   r   )r   r%   Úschema_editorÚ
from_stateÚto_stateÚto_modelÚ
from_modelr   s           r   Údatabase_forwardszAddField.database_forwardso   sµ   € Ø—=‘=×*Ñ*¨9°d·o±oÓFˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJØ—N‘N×,Ñ,¨T¯Y©YÓ7ˆEØ×(Ò(Ø $§
¡
× 2Ñ 2�”Ø×#Ñ#ØØôð ×(Ò(Ü ,�•ð )ð Nr   c                 ó  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r6|j                  ||j                  j                  | j                  «      «       y y r   ©
rS   rT   r   rU   rV   rW   Úremove_fieldrX   rY   r   ©r   r%   r[   r\   r]   r_   s         r   Údatabase_backwardszAddField.database_backwards}   óf   € Ø—_‘_×.Ñ.¨y¸$¿/¹/ÓJˆ
Ø×#Ñ# M×$<Ñ$<×$BÑ$BÀJÔOØ×&Ñ&Ø˜J×,Ñ,×6Ñ6°t·y±yÓAõð Pr   c                 ó:   — d| j                   ›d| j                  ›�S )Nz
Add field ú to ©r   r   r   s    r   ÚdescribezAddField.describe„   s   � Ø'+§y£y°$·/²/ÐBÐBr   c                 ó8   — | j                   ›d| j                  ›�S )Nr-   ©r   r   r   s    r   Úmigration_name_fragmentz AddField.migration_name_fragment‡   s   € à×/Ó/°·²ÐAÐAr   c                 ó@  •— t        |t        «      r~| j                  |«      rmt        |t        «      r#t	        | |j
                  |j                  ¬«      gS t        |t        «      rg S t        |t        «      rt	        | |j                  ¬«      gS t        ‰| �-  ||«      S )N)r   r   ©r   )Ú
isinstancer   r"   Ú
AlterFieldr   r   r   ÚRemoveFieldÚRenameFieldÚnew_namer6   r7   r8   s      €r   r7   zAddField.reduce‹   sŽ   ø€ Ü�i¤Ô0°T×5QÑ5QØô6
ô ˜)¤ZÔ0äØØ&Ÿ^™^Ø'Ÿo™oôðð ô ˜I¤{Ô3Ø�	Ü˜I¤{Ô3Ü ¨9×+=Ñ+=Ô>Ð?Ð?Ü‰w‰~˜i¨Ó3Ð3r   ©T)r:   r;   r<   Ú__doc__r
   ÚADDITIONÚcategoryr   rK   rQ   r`   re   rj   Úpropertyrm   r7   r=   r>   s   @r   r@   r@   S   sP   ø„ Ù!à ×)Ñ)€Hõ2ò5ò
ò-òòCð ñBó ðB÷4ð 4r   r@   c                   óh   ‡ — e Zd ZdZej
                  Zd„ Zd„ Zd„ Z	d„ Z
d„ Zed„ «       Zˆ fd„Zˆ xZS )	rr   zRemove a field from a model.c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r   r   )r   r   r9   r:   rI   s     r   rK   zRemoveField.deconstruct£   s0   € àŸ/™/Ø—I‘Iñ
ˆð —‘×'Ñ'¨¨VÐ4Ð4r   c                 óR   — |j                  || j                  | j                  «       y r   )rc   r   r   rO   s      r   rQ   zRemoveField.state_forwardsª   s   € Ø×Ñ˜9 d×&;Ñ&;¸T¿Y¹YÕGr   c                 ó  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r6|j                  ||j                  j                  | j                  «      «       y y r   rb   rd   s         r   r`   zRemoveField.database_forwards­   rf   r   c                 óT  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r\|j                   j                  || j                  «      }|j                  ||j                  j                  | j                  «      «       y y r   )
rS   rT   r   rU   rV   rW   rN   rX   rY   r   ©r   r%   r[   r\   r]   r^   r_   s          r   re   zRemoveField.database_backwards´   s{   € Ø—=‘=×*Ñ*¨9°d·o±oÓFˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJØ×#Ñ# J°·±×0HÑ0HÈÏÉÓ0SÕTð Nr   c                 ó:   — d| j                   ›d| j                  ›�S )NzRemove field z from ri   r   s    r   rj   zRemoveField.describeº   s   � Ø,0¯I«I°t·²ÐGÐGr   c                 ó:   — d| j                   ›d| j                  ›�S )NÚremove_r-   rl   r   s    r   rm   z#RemoveField.migration_name_fragment½   s   � à!%×!6Ó!6¸¿ºÐHÐHr   c                 ó€   •— ddl m} t        ||«      r|j                  | j                  k(  r|gS t
        ‰| �  ||«      S )Nr   )ÚDeleteModel)Úmodelsr„   rp   r   r   r6   r7   )r   r   r%   r„   r9   s       €r   r7   zRemoveField.reduceÁ   s?   ø€ Ý'ô �y +Ô.Ø×$Ñ$¨×(=Ñ(=Ò=à�;ÐÜ‰w‰~˜i¨Ó3Ð3r   )r:   r;   r<   rv   r
   ÚREMOVALrx   rK   rQ   r`   re   rj   ry   rm   r7   r=   r>   s   @r   rr   rr   ž   sM   ø„ Ù&à ×(Ñ(€Hò5òHòòUòHð ñIó ðI÷4ð 4r   rr   c                   ót   ‡ — e Zd ZdZej
                  Zd
ˆ fd„	Zd„ Zd„ Z	d„ Z
d„ Zd„ Zed„ «       Zˆ fd	„Zˆ xZS )rq   z`
    Alter a field's database column (e.g. null, max_length) to the provided
    new field.
    c                 ó6   •— || _         t        ‰| �	  |||«       y r   rB   rD   s        €r   r   zAlterField.__init__Ô   rE   r   c                 ó¶   — | j                   | j                  | j                  dœ}| j                  dur| j                  |d<   | j                  j
                  g |fS rG   rH   rI   s     r   rK   zAlterField.deconstructØ   rL   r   c                 ó~   — |j                  || j                  | j                  | j                  | j                  «       y r   )Úalter_fieldr   r   r   rC   rO   s      r   rQ   zAlterField.state_forwardsâ   s3   € Ø×ÑØØ×!Ñ!Ø�I‰IØ�J‰JØ×!Ñ!õ	
r   c                 ó"  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      rÃ|j                   j                  || j                  «      }|j                  j                  | j                  «      }|j                  j                  | j                  «      }| j                  s| j                  j                  |_        |j                  |||«       | j                  st        |_        y y y r   )rS   rT   r   rU   rV   rW   rX   rY   r   rC   r   rZ   r‹   r   )	r   r%   r[   r\   r]   r^   r_   Ú
from_fieldÚto_fields	            r   r`   zAlterField.database_forwardsë   sÍ   € Ø—=‘=×*Ñ*¨9°d·o±oÓFˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJØ#×)Ñ)×3Ñ3°D·I±IÓ>ˆJØ—~‘~×/Ñ/°·	±	Ó:ˆHØ×(Ò(Ø#'§:¡:×#5Ñ#5�Ô Ø×%Ñ% j°*¸hÔGØ×(Ò(Ü#/�Õ ð )ð Nr   c                 ó,   — | j                  ||||«       y r   )r`   )r   r%   r[   r\   r]   s        r   re   zAlterField.database_backwards÷   s   € Ø×Ñ˜y¨-¸ÀXÕNr   c                 ó:   — d| j                   ›d| j                  ›�S )NzAlter field ú on ri   r   s    r   rj   zAlterField.describeú   s   � Ø)-¯«°D·O²OÐDÐDr   c                 ó:   — d| j                   ›d| j                  ›�S )NÚalter_r-   rl   r   s    r   rm   z"AlterField.migration_name_fragmentý   s   � à $× 5Ó 5°t·²ÐGÐGr   c                 ó  •— t        |t        t        f«      r| j                  |«      r|gS t        |t        «      r@| j                  |«      r/| j
                  j                  €|t        | |j                  ¬«      gS t        ‰| �)  ||«      S )Nro   )rp   rq   rr   r"   rs   r   Ú	db_columnr   rt   r6   r7   r8   s      €r   r7   zAlterField.reduce  s…   ø€ ÜØœ
¤KÐ0ô
à×*Ñ*¨9Ô5Ø�;Ðä�y¤+Ô.Ø×,Ñ,¨YÔ7Ø—
‘
×$Ñ$Ð,ð Ü˜ 9×#5Ñ#5Ô6ðð ô ‰w‰~˜i¨Ó3Ð3r   ru   )r:   r;   r<   rv   r
   Ú
ALTERATIONrx   r   rK   rQ   r`   re   rj   ry   rm   r7   r=   r>   s   @r   rq   rq   Ì   sU   ø„ ñð
 !×+Ñ+€Hõ2ò5ò
ò
0òOòEð ñHó ðH÷4ð 4r   rq   c                   ó˜   ‡ — e Zd ZdZej
                  Zˆ fd„Zed„ «       Z	ed„ «       Z
d„ Zd„ Zd„ Zd„ Zd	„ Zed
„ «       Zd„ Zˆ fd„Zˆ xZS )rs   z8Rename a field on the model. Might affect db_column too.c                 óB   •— || _         || _        t        ‰| �  ||«       y r   )Úold_namert   r6   r   )r   r   r™   rt   r9   s       €r   r   zRenameField.__init__  s    ø€ Ø ˆŒØ ˆŒÜ‰Ñ˜ XÕ.r   c                 ó6   — | j                   j                  «       S r   )r™   r   r   s    r   Úold_name_lowerzRenameField.old_name_lower  ó   € à�}‰}×"Ñ"Ó$Ð$r   c                 ó6   — | j                   j                  «       S r   )rt   r   r   s    r   Únew_name_lowerzRenameField.new_name_lower   rœ   r   c                 ó|   — | j                   | j                  | j                  dœ}| j                  j                  g |fS )N)r   r™   rt   )r   r™   rt   r9   r:   rI   s     r   rK   zRenameField.deconstruct$  s7   € àŸ/™/ØŸ™ØŸ™ñ
ˆð
 —‘×'Ñ'¨¨VÐ4Ð4r   c                 óh   — |j                  || j                  | j                  | j                  «       y r   )Úrename_fieldr   r™   rt   rO   s      r   rQ   zRenameField.state_forwards,  s'   € Ø×ÑØ�t×,Ñ,¨d¯m©m¸T¿]¹]õ	
r   c                 óœ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r€|j                   j                  || j                  «      }|j                  ||j                  j                  | j                  «      |j                  j                  | j                  «      «       y y r   )rS   rT   r   rU   rV   rW   r‹   rX   rY   r™   rt   r   s          r   r`   zRenameField.database_forwards1  ó—   € Ø—=‘=×*Ñ*¨9°d·o±oÓFˆØ×#Ñ# M×$<Ñ$<×$BÑ$BÀHÔMØ#Ÿ™×2Ñ2°9¸d¿o¹oÓNˆJØ×%Ñ%ØØ× Ñ ×*Ñ*¨4¯=©=Ó9Ø—‘×(Ñ(¨¯©Ó7õð Nr   c                 óœ  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r€|j                   j                  || j                  «      }|j                  ||j                  j                  | j                  «      |j                  j                  | j                  «      «       y y r   )rS   rT   r   rU   rV   rW   r‹   rX   rY   rt   r™   r   s          r   re   zRenameField.database_backwards;  r£   r   c                 óT   — d| j                   ›d| j                  ›d| j                  ›�S )NzRename field r‘   rh   )r™   r   rt   r   s    r   rj   zRenameField.describeE  s!   � à�M‹MØ�O‹OØ�MŠMð
ð 	
r   c                 óT   — d| j                   ›d| j                  ›d| j                  ›�S )NÚrename_r-   )r›   r   rž   r   s    r   rm   z#RenameField.migration_name_fragmentL  s)   � ð ×ÓØ×!Ó!Ø×Òð
ð 	
r   c                 ó¢   — | j                  ||«      xr< |j                  «       | j                  k(  xs |j                  «       | j                  k(  S r   )r&   r   r›   rž   )r   r   r   r%   s       r   r4   zRenameField.references_fieldT  sF   € Ø×$Ñ$ Z°Ó;ò 
Ø�J‰J‹L˜D×/Ñ/Ñ/ÒV°4·:±:³<À4×CVÑCVÑ3Vð	
r   c                 óv  •— t        |t        «      rB| j                  |«      r1| j                  |j                  k(  rt        | |j                  ¬«      gS t        t        | �'  ||«      xsQ |j                  | j                  | j                  |«      xs' |j                  | j                  | j                  |«       S )N)rt   )rp   rs   r    rž   r›   r   rt   r6   r   r7   r4   r   r™   r8   s      €r   r7   zRenameField.reduceY  s¢   ø€ ä�y¤+Ô.Ø×,Ñ,¨YÔ7Ø×#Ñ# y×'?Ñ'?Ò?ä˜D¨9×+=Ñ+=Ô>Ð?Ð?ô ”^ TÑ1°)¸YÓGò 
Ø×&Ñ& t§¡¸¿¹ÀyÓQò UØ×)Ñ)¨$¯/©/¸4¿=¹=È)ÓTðL
ð 	
r   )r:   r;   r<   rv   r
   r–   rx   r   r   r›   rž   rK   rQ   r`   re   rj   ry   rm   r4   r7   r=   r>   s   @r   rs   rs     sz   ø„ ÙBà ×+Ñ+€Hô/ð
 ñ%ó ð%ð ñ%ó ð%ò5ò
ò
òò
ð ñ
ó ð
ò
÷

ð 
r   rs   N)Údjango.db.migrations.utilsr   Údjango.db.modelsr   r   Údjango.utils.copyr   Údjango.utils.functionalr   Úbaser	   r
   r   r@   rr   rq   rs   r*   r   r   ú<module>r¯      s\   ðÝ 7ß 0Ý %Ý 3ç .ôG
�Yô G
ôTH4ˆ~ô H4ôV+4�.ô +4ô\C4�ô C4ôLS
�.õ S
r   