Ë
    q^ëi”1  ã                   ó¢   — d dl mZ d dlmZ d dlmZ ddl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)Úcached_propertyé   )Ú	Operationc                   ó^   ‡ — 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       úW/var/www/eb/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                 óN  — |j                  «       }|| j                  k(  rK|| j                  k(  ry| j                  r/t	        | j                  d«      r|| j                  j
                  v ry| j                  €yt        t        || j                  f| j                  ||f|«      «      S )NTÚfrom_fieldsF)r   r   r   r   Úhasattrr%   r!   r   )r   r   r   r"   r   s        r   Úreferences_fieldzFieldOperation.references_field-   s›   € Ø%×+Ñ+Ó-Ðà˜t×4Ñ4Ò4Ø�t—y‘yÒ Øà—
’
Ü˜DŸJ™J¨Ô6Ø˜DŸJ™J×2Ñ2Ñ2àà�:‰:ÐØÜÜØ˜D×1Ñ1Ð2Ø—
‘
ØÐ,Ð-Øó	ó
ð 	
r   c                 óx   •— t         ‰| �  ||«      xs( |j                  | j                  | j                  |«       S r   )ÚsuperÚreducer'   r   r   ©r   r   r"   Ú	__class__s      €r   r*   zFieldOperation.reduceE   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#   r'   r*   Ú__classcell__©r,   s   @r   r	   r	      sO   ø„ óð
 ñ'ó ð'ð ñ!ó ð!òCò
òò
÷0
ð 
r   r	   c                   ó\   ‡ — e Zd Zd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_defaultr)   r   ©r   r   r   r   r6   r,   s        €r   r   zAddField.__init__N   ó   ø€ Ø 0ˆÔÜ‰Ñ˜ T¨5Õ1r   c                 ó¶   — | j                   | j                  | j                  dœ}| j                  dur| j                  |d<   | j                  j
                  g |fS ©Nr   Tr6   ©r   r   r   r6   r,   r-   ©r   Úkwargss     r   ÚdeconstructzAddField.deconstructR   óV   € àŸ/™/Ø—I‘IØ—Z‘Zñ
ˆð
 × Ñ ¨Ñ,Ø)-×)>Ñ)>ˆFÐ%Ñ&Ø—‘×'Ñ'¨¨VÐ4Ð4r   c                 ó~   — |j                  || j                  | j                  | j                  | j                  «       y r   )Ú	add_fieldr   r   r   r6   ©r   r"   Ústates      r   Ústate_forwardszAddField.state_forwards\   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   r6   r   ÚdefaultrA   r   )r   r"   Úschema_editorÚ
from_stateÚto_stateÚto_modelÚ
from_modelr   s           r   Údatabase_forwardszAddField.database_forwardse   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   ©
rF   rG   r   rH   rI   rJ   Úremove_fieldrK   rL   r   ©r   r"   rN   rO   rP   rR   s         r   Údatabase_backwardszAddField.database_backwardss   ó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.describez   s   � Ø'+§y£y°$·/²/ÐBÐBr   c                 ó8   — | j                   ›d| j                  ›�S )NÚ_©r   r   r   s    r   Úmigration_name_fragmentz AddField.migration_name_fragment}   s   € à×/Ó/°·²ÐAÐAr   c                 ó~  •— t        |t        «      r�| j                  |«      rŒt        |t        «      r-t	        | j
                  |j                  |j                  ¬«      gS t        |t        «      rg S t        |t        «      r-t	        | j
                  |j                  | j                  ¬«      gS t        ‰| �1  ||«      S ©Nr   )Ú
isinstancer	   r   Ú
AlterFieldr3   r   r   r   ÚRemoveFieldÚRenameFieldÚnew_namer)   r*   r+   s      €r   r*   zAddField.reduce�   s§   ø€ Ü�i¤Ô0°T×5QÑ5QØô6
ô ˜)¤ZÔ0äØ#'§?¡?Ø&Ÿ^™^Ø'Ÿo™oôðð ô ˜I¤{Ô3Ø�	Ü˜I¤{Ô3äØ#'§?¡?Ø&×/Ñ/Ø"Ÿj™jôðð ô ‰w‰~˜i¨Ó3Ð3r   ©T©r-   r.   r/   Ú__doc__r   r>   rD   rS   rX   r]   Úpropertyra   r*   r0   r1   s   @r   r3   r3   K   sE   ø„ Ù!õ2ò5ò
ò-òòCð ñBó ðB÷4ð 4r   r3   c                   óP   ‡ — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Ze	d„ «       Z
ˆ fd„Zˆ xZS )	rf   zRemove a field from a model.c                 óf   — | j                   | j                  dœ}| j                  j                  g |fS )N)r   r   )r   r   r,   r-   r<   s     r   r>   zRemoveField.deconstruct�   s0   € àŸ/™/Ø—I‘Iñ
ˆð —‘×'Ñ'¨¨VÐ4Ð4r   c                 óR   — |j                  || j                  | j                  «       y r   )rV   r   r   rB   s      r   rD   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   rU   rW   s         r   rS   zRemoveField.database_forwards§   rY   r   c                 óT  — |j                   j                  || j                  «      }| j                  |j                  j
                  |«      r\|j                   j                  || j                  «      }|j                  ||j                  j                  | j                  «      «       y y r   )
rF   rG   r   rH   rI   rJ   rA   rK   rL   r   ©r   r"   rN   rO   rP   rQ   rR   s          r   rX   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 r\   r   s    r   r]   zRemoveField.describe´   s   � Ø,0¯I«I°t·²ÐGÐGr   c                 ó:   — d| j                   ›d| j                  ›�S )NÚremove_r_   r`   r   s    r   ra   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)Úmodelsrw   rd   r   r   r)   r*   )r   r   r"   rw   r,   s       €r   r*   zRemoveField.reduce»   s?   ø€ Ý'ô �y +Ô.Ø×$Ñ$¨×(=Ñ(=Ò=à�;ÐÜ‰w‰~˜i¨Ó3Ð3r   )r-   r.   r/   rk   r>   rD   rS   rX   r]   rl   ra   r*   r0   r1   s   @r   rf   rf   š   sB   ø„ Ù&ò5òHòòUòHð ñIó ðI÷4ð 4r   rf   c                   ó\   ‡ — e Zd ZdZd
ˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
d„ «       Zˆ fd	„Zˆ xZS )re   z`
    Alter a field's database column (e.g. null, max_length) to the provided
    new field.
    c                 ó6   •— || _         t        ‰| �	  |||«       y r   r5   r7   s        €r   r   zAlterField.__init__Ì   r8   r   c                 ó¶   — | j                   | j                  | j                  dœ}| j                  dur| j                  |d<   | j                  j
                  g |fS r:   r;   r<   s     r   r>   zAlterField.deconstructÐ   r?   r   c                 ó~   — |j                  || j                  | j                  | j                  | j                  «       y r   )Úalter_fieldr   r   r   r6   rB   s      r   rD   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   )rF   rG   r   rH   rI   rJ   rK   rL   r   r6   r   rM   r}   r   )	r   r"   rN   rO   rP   rQ   rR   Ú
from_fieldÚto_fields	            r   rS   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   )rS   )r   r"   rN   rO   rP   s        r   rX   zAlterField.database_backwardsï   s   € Ø×Ñ˜y¨-¸ÀXÕNr   c                 ó:   — d| j                   ›d| j                  ›�S )NzAlter field ú on r\   r   s    r   r]   zAlterField.describeò   s   � Ø)-¯«°D·O²OÐDÐDr   c                 ó:   — d| j                   ›d| j                  ›�S )NÚalter_r_   r`   r   s    r   ra   z"AlterField.migration_name_fragmentõ   s   � à $× 5Ó 5°t·²ÐGÐGr   c                 ó6  •— t        |t        «      r| j                  |«      r|gS t        |t        «      rU| j                  |«      rD| j                  j
                  €.|t        | j                  |j                  | j                  ¬«      gS t        ‰| �)  ||«      S rc   )rd   rf   r   rg   r   Ú	db_columnre   r   rh   r)   r*   r+   s      €r   r*   zAlterField.reduceù   s�   ø€ Ü�i¤Ô-°$×2NÑ2NØô3
ð �;Ðä�y¤+Ô.Ø×,Ñ,¨YÔ7Ø—
‘
×$Ñ$Ð,ð ÜØ#Ÿ™Ø"×+Ñ+ØŸ*™*ôðð ô ‰w‰~˜i¨Ó3Ð3r   ri   rj   r1   s   @r   re   re   Æ   sH   ø„ ñõ
2ò5ò
ò
0òOòEð ñHó ðH÷4ð 4r   re   c                   ó€   ‡ — e Zd Zd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 )rg   z8Rename a field on the model. Might affect db_column too.c                 óB   •— || _         || _        t        ‰| �  ||«       y r   )Úold_namerh   r)   r   )r   r   rŠ   rh   r,   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   )rh   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Š   rh   )r   rŠ   rh   r,   r-   r<   s     r   r>   zRenameField.deconstruct  s7   € àŸ/™/ØŸ™ØŸ™ñ
ˆð
 —‘×'Ñ'¨¨VÐ4Ð4r   c                 óh   — |j                  || j                  | j                  | j                  «       y r   )Úrename_fieldr   rŠ   rh   rB   s      r   rD   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   )rF   rG   r   rH   rI   rJ   r}   rK   rL   rŠ   rh   rr   s          r   rS   zRenameField.database_forwards+  ó—   € Ø—=‘=×*Ñ*¨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   )rF   rG   r   rH   rI   rJ   r}   rK   rL   rh   rŠ   rr   s          r   rX   zRenameField.database_backwards5  r”   r   c                 óT   — d| j                   ›d| j                  ›d| j                  ›�S )NzRename field rƒ   r[   )rŠ   r   rh   r   s    r   r]   zRenameField.describe?  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   ra   z#RenameField.migration_name_fragmentF  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   r'   zRenameField.references_fieldN  sF   € Ø×$Ñ$ Z°Ó;ò 
Ø�J‰J‹L˜D×/Ñ/Ñ/ÒV°4·:±:³<À4×CVÑCVÑ3Vð	
r   c                 óž  •— t        |t        «      rV| j                  |«      rE| j                  |j                  k(  r,t        | j
                  | j                  |j                  «      gS t        t        | �+  ||«      xsQ |j                  | j
                  | j                  |«      xs' |j                  | j
                  | j                  |«       S r   )rd   rg   r   r�   rŒ   r   rŠ   rh   r)   r	   r*   r'   r+   s      €r   r*   zRenameField.reduceS  s·   ø€ ä�y¤+Ô.Ø×,Ñ,¨YÔ7Ø×#Ñ# y×'?Ñ'?Ò?ô Ø—O‘OØ—M‘MØ×&Ñ&óðð ô ”^ TÑ1°)¸YÓGò 
Ø×&Ñ& t§¡¸¿¹ÀyÓQò UØ×)Ñ)¨$¯/©/¸4¿=¹=È)ÓTðL
ð 	
r   )r-   r.   r/   rk   r   r   rŒ   r�   r>   rD   rS   rX   r]   rl   ra   r'   r*   r0   r1   s   @r   rg   rg     so   ø„ ÙBô/ð
 ñ%ó ð%ð ñ%ó ð%ò5ò
ò
òò
ð ñ
ó ð
ò
÷

ð 
r   rg   N)Údjango.db.migrations.utilsr   Údjango.db.modelsr   Údjango.utils.functionalr   Úbaser   r	   r3   rf   re   rg   © r   r   ú<module>r       sY   ðÝ 7Ý )Ý 3å ô@
�Yô @
ôFL4ˆ~ô L4ô^)4�.ô )4ôXE4�ô E4ôPW
�.õ W
r   