
    hd2                         S SK Jr  S SKJr  S SKJr  SSKJrJr   " S S\5      r	 " S S	\	5      r
 " S
 S\	5      r " S S\	5      r " S S\	5      rg)    )field_references)NOT_PROVIDED)cached_property   )	OperationOperationCategoryc                   j   ^  \ rS rSrSS jr\S 5       r\S 5       rS rS r	S r
S rU 4S	 jrS
rU =r$ )FieldOperation   c                 (    Xl         X l        X0l        g N
model_namenamefield)selfr   r   r   s       X/var/www/html/env/lib/python3.13/site-packages/django/db/migrations/operations/fields.py__init__FieldOperation.__init__	   s    $	
    c                 6    U R                   R                  5       $ r   )r   lowerr   s    r   model_name_lowerFieldOperation.model_name_lower   s    $$&&r   c                 6    U R                   R                  5       $ r   )r   r   r   s    r   
name_lowerFieldOperation.name_lower   s    yy  r   c                 4    U R                   UR                   :H  $ r   )r   r   	operations     r   is_same_model_operation&FieldOperation.is_same_model_operation   s    $$	(B(BBBr   c                 d    U R                  U5      =(       a    U R                  UR                  :H  $ r   )r"   r   r    s     r   is_same_field_operation&FieldOperation.is_same_field_operation   s,    ((3 89#7#77	
r   c                     UR                  5       nX0R                  :X  a  gU R                  (       a,  [        [	        X R                  4U R                  X#45      5      $ g)NTF)r   r   r   boolr   )r   r   	app_labelr   s       r   references_modelFieldOperation.references_model   sV    ZZ\
...::  5 56JJ+  r   c                 b   UR                  5       nX@R                  :X  aV  X R                  :X  a  gU R                  (       a5  [	        U R                  S5      (       a  X R                  R
                  ;   a  gU R                  c  g[        [        X0R                  4U R                  X44U5      5      $ )NTfrom_fieldsF)r   r   r   r   hasattrr-   r(   r   )r   r   r   r)   r   s        r   references_fieldFieldOperation.references_field-   s    %++-444yy 

DJJ66JJ222::112

-	
 	
r   c                    > [         TU ]  X5      =(       d,    UR                  U R                  U R                  U5      (       + $ r   )superreducer/   r   r   r   r!   r)   	__class__s      r   r3   FieldOperation.reduceE   s:    w~i3 
9;U;UOOTYY	<
 8
 	
r   )r   r   r   r   )__name__
__module____qualname____firstlineno__r   r   r   r   r"   r%   r*   r/   r3   __static_attributes____classcell__r5   s   @r   r
   r
      sO    
 ' ' ! !C

0
 
r   r
   c                      ^  \ rS rSrSr\R                  rSU 4S jjrS r	S r
S rS rS r\S	 5       rU 4S
 jrSrU =r$ )AddFieldK   zAdd a field to a model.c                 2   > X@l         [        TU ]	  XU5        g r   preserve_defaultr2   r   r   r   r   r   rC   r5   s        r   r   AddField.__init__P        051r   c                     U R                   U R                  U R                  S.nU R                  SLa  U R                  US'   U R                  R
                  / U4$ Nr   TrC   r   r   r   rC   r5   r7   r   kwargss     r   deconstructAddField.deconstructT   V    //IIZZ

   ,)-)>)>F%&''V44r   c                 ~    UR                  UU R                  U R                  U R                  U R                  5        g r   )	add_fieldr   r   r   rC   r   r)   states      r   state_forwardsAddField.state_forwards^   s1    !!IIJJ!!	
r   c                    UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a  UR                   R                  XR                  5      nUR                  R                  U R                  5      nU R                  (       d  U R                  R                  Ul        UR                  UU5        U R                  (       d  [        Ul        g g g r   )apps	get_modelr   allow_migrate_model
connectionalias_meta	get_fieldr   rC   r   defaultrP   r   )r   r)   schema_editor
from_stateto_stateto_model
from_modelr   s           r   database_forwardsAddField.database_forwardsg   s    ==**9ooF##M$<$<$B$BHMM#229ooNJNN,,TYY7E(( $

 2 2## (( , ) Nr   c                    UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a5  UR                  XUR                  R                  U R                  5      5        g g r   
rV   rW   r   rX   rY   rZ   remove_fieldr[   r\   r   r   r)   r^   r_   r`   rb   s         r   database_backwardsAddField.database_backwardsu   e    __..y//J
##M$<$<$B$BJOO&&,,66tyyA Pr   c                 >    SU R                   < SU R                  < 3$ )Nz
Add field  to r   r   r   s    r   describeAddField.describe|   s    '+yy$//BBr   c                 <    U R                   < SU R                  < 3$ )N_r   r   r   s    r   migration_name_fragment AddField.migration_name_fragment   s    //AAr   c                   > [        U[        5      (       a  U R                  U5      (       a  [        U[        5      (       a*  [	        U R
                  UR                  UR                  S9/$ [        U[        5      (       a  / $ [        U[        5      (       a*  [	        U R
                  UR                  U R                  S9/$ [        TU ]1  X5      $ Nr   )
isinstancer
   r%   
AlterFieldr?   r   r   r   RemoveFieldRenameFieldnew_namer2   r3   r4   s      r   r3   AddField.reduce   s    i00T5Q5Q6
 6
 )Z00#'??&^^'oo  I{33	I{33#'??&//"jj  w~i33r   rC   T)r7   r8   r9   r:   __doc__r   ADDITIONcategoryr   rL   rS   rc   ri   ro   propertyrt   r3   r;   r<   r=   s   @r   r?   r?   K   sP    ! ))H25
-C B B4 4r   r?   c                   r   ^  \ rS rSrSr\R                  rS rS r	S r
S rS r\S 5       rU 4S	 jrS
rU =r$ )rz      zRemove a field from a model.c                 f    U R                   U R                  S.nU R                  R                  / U4$ )N)r   r   )r   r   r5   r7   rJ   s     r   rL   RemoveField.deconstruct   s0    //II
 ''V44r   c                 P    UR                  XR                  U R                  5        g r   )rg   r   r   rQ   s      r   rS   RemoveField.state_forwards   s    9&;&;TYYGr   c                    UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a5  UR                  XUR                  R                  U R                  5      5        g g r   rf   rh   s         r   rc   RemoveField.database_forwards   rk   r   c                 X   UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       aZ  UR                   R                  XR                  5      nUR                  XeR                  R                  U R                  5      5        g g r   )
rV   rW   r   rX   rY   rZ   rP   r[   r\   r   r   r)   r^   r_   r`   ra   rb   s          r   ri   RemoveField.database_backwards   sx    ==**9ooF##M$<$<$B$BHMM#229ooNJ##J0H0H0ST Nr   c                 >    SU R                   < SU R                  < 3$ )NzRemove field z from rn   r   s    r   ro   RemoveField.describe   s    ,0IItGGr   c                 >    SU R                   < SU R                  < 3$ )Nremove_rr   rs   r   s    r   rt   #RemoveField.migration_name_fragment   s    !%!6!6HHr   c                    > SSK Jn  [        X5      (       a  UR                  U R                  :X  a  U/$ [
        TU ]  X5      $ )Nr   )DeleteModel)modelsr   rx   r   r   r2   r3   )r   r!   r)   r   r5   s       r   r3   RemoveField.reduce   s>    ' y..$$(=(==;w~i33r    )r7   r8   r9   r:   r   r   REMOVALr   rL   rS   rc   ri   ro   r   rt   r3   r;   r<   r=   s   @r   rz   rz      sM    & ((H5HUH I I4 4r   rz   c                      ^  \ rS rSrSr\R                  rSU 4S jjrS r	S r
S rS rS r\S	 5       rU 4S
 jrSrU =r$ )ry      zT
Alter a field's database column (e.g. null, max_length) to the provided
new field.
c                 2   > X@l         [        TU ]	  XU5        g r   rB   rD   s        r   r   AlterField.__init__   rF   r   c                     U R                   U R                  U R                  S.nU R                  SLa  U R                  US'   U R                  R
                  / U4$ rH   rI   rJ   s     r   rL   AlterField.deconstruct   rN   r   c                 ~    UR                  UU R                  U R                  U R                  U R                  5        g r   )alter_fieldr   r   r   rC   rQ   s      r   rS   AlterField.state_forwards   s3    !!IIJJ!!	
r   c                 :   UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a  UR                   R                  XR                  5      nUR                  R                  U R                  5      nUR                  R                  U R                  5      nU R                  (       d  U R                  R                  Ul        UR                  XgU5        U R                  (       d  [        Ul        g g g r   )rV   rW   r   rX   rY   rZ   r[   r\   r   rC   r   r]   r   r   )	r   r)   r^   r_   r`   ra   rb   
from_fieldto_fields	            r   rc   AlterField.database_forwards   s    ==**9ooF##M$<$<$B$BHMM#229ooNJ#))33DII>J~~//		:H((#'::#5#5 %%jhG((#/  ) Nr   c                 (    U R                  XX45        g r   )rc   )r   r)   r^   r_   r`   s        r   ri   AlterField.database_backwards   s    yNr   c                 >    SU R                   < SU R                  < 3$ )NzAlter field  on rn   r   s    r   ro   AlterField.describe   s    )-DOODDr   c                 >    SU R                   < SU R                  < 3$ )Nalter_rr   rs   r   s    r   rt   "AlterField.migration_name_fragment   s     $ 5 5tGGr   c                 d  > [        U[        [        45      (       a  U R                  U5      (       a  U/$ [        U[        5      (       aX  U R                  U5      (       aB  U R
                  R                  c+  U[        U R                  UR                  U R
                  S9/$ [        TU ])  X5      $ rw   )rx   ry   rz   r%   r{   r   	db_columnr   r|   r2   r3   r4   s      r   r3   AlterField.reduce   s    
K0
 
**955;y+..,,Y77

$$, #"++**  w~i33r   r~   r   )r7   r8   r9   r:   r   r   
ALTERATIONr   r   rL   rS   rc   ri   ro   r   rt   r3   r;   r<   r=   s   @r   ry   ry      sU    
 !++H25

0OE H H4 4r   ry   c                      ^  \ rS rSrSr\R                  rU 4S jr\	S 5       r
\	S 5       rS rS rS rS	 rS
 r\S 5       rS rU 4S jrSrU =r$ )r{   i  z8Rename a field on the model. Might affect db_column too.c                 <   > X l         X0l        [        TU ]  X5        g r   )old_namer|   r2   r   )r   r   r   r|   r5   s       r   r   RenameField.__init__  s      .r   c                 6    U R                   R                  5       $ r   )r   r   r   s    r   old_name_lowerRenameField.old_name_lower      }}""$$r   c                 6    U R                   R                  5       $ r   )r|   r   r   s    r   new_name_lowerRenameField.new_name_lower"  r   r   c                 |    U R                   U R                  U R                  S.nU R                  R                  / U4$ )N)r   r   r|   )r   r   r|   r5   r7   rJ   s     r   rL   RenameField.deconstruct&  s7    //

 ''V44r   c                 f    UR                  XR                  U R                  U R                  5        g r   )rename_fieldr   r   r|   rQ   s      r   rS   RenameField.state_forwards.  s%    ,,dmmT]]	
r   c                    UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a  UR                   R                  XR                  5      nUR                  UUR                  R                  U R                  5      UR                  R                  U R                  5      5        g g r   )rV   rW   r   rX   rY   rZ   r   r[   r\   r   r|   r   s          r   rc   RenameField.database_forwards3      ==**9ooF##M$<$<$B$BHMM#229ooNJ%%  **4==9((7 Nr   c                    UR                   R                  XR                  5      nU R                  UR                  R
                  U5      (       a  UR                   R                  XR                  5      nUR                  UUR                  R                  U R                  5      UR                  R                  U R                  5      5        g g r   )rV   rW   r   rX   rY   rZ   r   r[   r\   r|   r   r   s          r   ri   RenameField.database_backwards=  r   r   c                 Z    SU R                   < SU R                  < SU R                  < 3$ )NzRename field r   rm   )r   r   r|   r   s    r   ro   RenameField.describeG  s!    MMOOMM
 	
r   c                 Z    SU R                   < SU R                  < SU R                  < 3$ )Nrename_rr   )r   r   r   r   s    r   rt   #RenameField.migration_name_fragmentN  s)     !!
 	
r   c                     U R                  X5      =(       aA    UR                  5       U R                  :H  =(       d    UR                  5       U R                  :H  $ r   )r*   r   r   r   )r   r   r   r)   s       r   r/   RenameField.references_fieldV  sD    $$Z; 
JJLD///V4::<4CVCV3V	
r   c                   > [        U[        5      (       a\  U R                  U5      (       aF  U R                  UR                  :X  a,  [        U R
                  U R                  UR                  5      /$ [        [        U ]+  X5      =(       dZ    UR                  U R
                  U R                  U5      =(       d'    UR                  U R
                  U R                  U5      (       + $ r   )rx   r{   r"   r   r   r   r   r|   r2   r
   r3   r/   r4   s      r   r3   RenameField.reduce[  s    y+..,,Y77##y'?'?? OOMM&&  ^T1)G 
&&tyQ U))$//4==)TL
 	
r   )r|   r   )r7   r8   r9   r:   r   r   r   r   r   r   r   r   rL   rS   rc   ri   ro   r   rt   r/   r3   r;   r<   r=   s   @r   r{   r{     sz    B ++H/
 % % % %5


 
 



 
r   r{   N)django.db.migrations.utilsr   django.db.modelsr   django.utils.functionalr   baser   r   r
   r?   rz   ry   r{   r   r   r   <module>r      sY    7 ) 3 .@
Y @
FN4~ N4b+4. +4\G4 G4TY
. Y
r   