
    Evgd2                         d dl 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dS )    )field_references)NOT_PROVIDED)cached_property   )	OperationOperationCategoryc                   j     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 )FieldOperationNc                 0    || _         || _        || _        d S N
model_namenamefield)selfr   r   r   s       c/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/db/migrations/operations/fields.py__init__zFieldOperation.__init__	   s    $	


    c                 4    | j                                         S r   )r   lowerr   s    r   model_name_lowerzFieldOperation.model_name_lower   s    $$&&&r   c                 4    | j                                         S r   )r   r   r   s    r   
name_lowerzFieldOperation.name_lower   s    y   r   c                 "    | j         |j         k    S r   )r   r   	operations     r   is_same_model_operationz&FieldOperation.is_same_model_operation   s    $	(BBBr   c                 L    |                      |          o| j        |j        k    S r   )r   r   r   s     r   is_same_field_operationz&FieldOperation.is_same_field_operation   s*    ((33 89#77	
r   c                     |                                 }|| j        k    rdS | j        r,t          t	          || j        f| j        ||f                    S dS )NTF)r   r   r   boolr   )r   r   	app_labelr   s       r   references_modelzFieldOperation.references_model   sj    ZZ\\
...4: 	  56J
+    ur   c                    |                                 }|| j        k    r9|| j        k    rdS | j        r%t	          | j        d          r|| j        j        v rdS | j        dS 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ty  t
DJ66 DJ222t:5D12
,-	 
 
 	
r   c                     t                                          ||          p!|                    | j        | j        |           S r   )superreducer(   r   r   r   r   r#   	__class__s      r   r+   zFieldOperation.reduceE   sD    ww~~i33 
9;U;UOTY	<
 <
 8
 	
r   r   )__name__
__module____qualname__r   r   r   r   r   r    r$   r(   r+   __classcell__r-   s   @r   r
   r
      s           
 ' ' _' ! ! _!C C C
 
 
  
 
 
0
 
 
 
 
 
 
 
 
r   r
   c                   p     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.Tc                 \    || _         t                                          |||           d S r   preserve_defaultr*   r   r   r   r   r   r7   r-   s        r   r   zAddField.__init__P   -     0T511111r   c                 p    | j         | j        | j        d}| j        dur
| j        |d<   | j        j        g |fS Nr   Tr7   r   r   r   r7   r-   r.   r   kwargss     r   deconstructzAddField.deconstructT   M    /IZ
 

  ,,)-)>F%&'V44r   c                 `    |                     || j        | j        | j        | j                   d S r   )	add_fieldr   r   r   r7   r   r#   states      r   state_forwardszAddField.state_forwards^   s;    !IJ!	
 	
 	
 	
 	
r   c                    |j                             || j                  }|                     |j        j        |          r|j                             || j                  }|j                            | j                  }| j	        s| j
        j        |_        |                    ||           | j	        st          |_        d S d S d S r   )apps	get_modelr   allow_migrate_model
connectionalias_meta	get_fieldr   r7   r   defaultrB   r   )r   r#   schema_editor
from_stateto_stateto_model
from_modelr   s           r   database_forwardszAddField.database_forwardsg   s    =**9doFF##M$<$BHMM 
	-#229doNNJN,,TY77E( 3 $
 2##   ( - ,
	- 
	-- -r   c                     |j                             || j                  }|                     |j        j        |          r5|                    ||j                            | j	                             d S d S r   
rG   rH   r   rI   rJ   rK   remove_fieldrL   rM   r   r   r#   rO   rP   rQ   rS   s         r   database_backwardszAddField.database_backwardsu   }    _..y$/JJ
##M$<$BJOO 	&&J,66tyAA    	 	r   c                 &    d| j         d| j        S )Nz
Add field  to r   r   r   s    r   describezAddField.describe|   s     '+yyy$//BBr   c                 $    | j         d| j        S )N_r   r   r   s    r   migration_name_fragmentz AddField.migration_name_fragment   s    ///AAr   c                    t          |t                    r|                     |          rt          |t                    r"t	          | j        |j        |j                  gS t          |t                    rg S t          |t                    r"t	          | j        |j
        | j                  gS t                                          ||          S Nr   )
isinstancer
   r    
AlterFieldr4   r   r   r   RemoveFieldRenameFieldnew_namer*   r+   r,   s      r   r+   zAddField.reduce   s    i00 	T5Q5Q6
 6
 	 )Z00 #'?&^'o    I{33 		I{33 #'?&/"j    ww~~i333r   T)r.   r/   r0   __doc__r   ADDITIONcategoryr   r?   rE   rT   rY   r^   propertyrb   r+   r1   r2   s   @r   r4   r4   K   s        !! )H2 2 2 2 2 25 5 5
 
 
- - -  C C C B B XB4 4 4 4 4 4 4 4 4r   r4   c                   d     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 )	rg   zRemove a field from a model.c                 >    | j         | j        d}| j        j        g |fS )N)r   r   )r   r   r-   r.   r=   s     r   r?   zRemoveField.deconstruct   s,    /I
 
 'V44r   c                 H    |                     || j        | j                   d S r   )rW   r   r   rC   s      r   rE   zRemoveField.state_forwards   s%    9d&;TYGGGGGr   c                     |j                             || j                  }|                     |j        j        |          r5|                    ||j                            | j	                             d S d S r   rV   rX   s         r   rT   zRemoveField.database_forwards   rZ   r   c                 0   |j                             || j                  }|                     |j        j        |          rU|j                             || j                  }|                    ||j                            | j	                             d S d S r   )
rG   rH   r   rI   rJ   rK   rB   rL   rM   r   r   r#   rO   rP   rQ   rR   rS   s          r   rY   zRemoveField.database_backwards   s    =**9doFF##M$<$BHMM 	U#229doNNJ##J0H0H0S0STTTTT	U 	Ur   c                 &    d| j         d| j        S )NzRemove field z from r]   r   s    r   r^   zRemoveField.describe   s     ,0IIItGGr   c                 &    d| j         d| j        S )Nremove_r`   ra   r   s    r   rb   z#RemoveField.migration_name_fragment   s     !%!6!6!6HHr   c                     ddl m} t          ||          r|j        | j        k    r|gS t                                          ||          S )Nr   )DeleteModel)modelsry   re   r   r   r*   r+   )r   r   r#   ry   r-   s       r   r+   zRemoveField.reduce   sZ    '''''' y+..	$(===;ww~~i333r   )r.   r/   r0   rk   r   REMOVALrm   r?   rE   rT   rY   r^   rn   rb   r+   r1   r2   s   @r   rg   rg      s        && (H5 5 5H H H  U U UH H H I I XI4 4 4 4 4 4 4 4 4r   rg   c                   p     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 )rf   z`
    Alter a field's database column (e.g. null, max_length) to the provided
    new field.
    Tc                 \    || _         t                                          |||           d S r   r6   r8   s        r   r   zAlterField.__init__   r9   r   c                 p    | 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                   d S r   )alter_fieldr   r   r   r7   rC   s      r   rE   zAlterField.state_forwards   s=    !IJ!	
 	
 	
 	
 	
r   c                    |j                             || j                  }|                     |j        j        |          r|j                             || j                  }|j                            | j                  }|j                            | j                  }| j	        s| j
        j        |_        |                    |||           | j	        st          |_        d S d S d S r   )rG   rH   r   rI   rJ   rK   rL   rM   r   r7   r   rN   r   r   )	r   r#   rO   rP   rQ   rR   rS   
from_fieldto_fields	            r   rT   zAlterField.database_forwards   s    =**9doFF##M$<$BHMM 	0#229doNNJ#)33DI>>J~//	::H( 6#':#5 %%j*hGGG( 0#/   	0 	00 0r   c                 6    |                      ||||           d S r   )rT   )r   r#   rO   rP   rQ   s        r   rY   zAlterField.database_backwards   s"    y-XNNNNNr   c                 &    d| j         d| j        S )NzAlter field  on r]   r   s    r   r^   zAlterField.describe   s     )-DOODDr   c                 &    d| j         d| j        S )Nalter_r`   ra   r   s    r   rb   z"AlterField.migration_name_fragment   s      $ 5 5 5tGGr   c                 b   t          |t          t          f          r|                     |          r|gS t          |t                    rD|                     |          r/| j        j        #|t          | j        |j        | j                  gS t                      
                    ||          S rd   )re   rf   rg   r    rh   r   	db_columnr   ri   r*   r+   r,   s      r   r+   zAlterField.reduce   s    
K0
 
 	**955	 ;y+..	,,Y77	 
$, #"+*    ww~~i333r   rj   )r.   r/   r0   rk   r   
ALTERATIONrm   r   r?   rE   rT   rY   r^   rn   rb   r+   r1   r2   s   @r   rf   rf      s         
 !+H2 2 2 2 2 25 5 5
 
 

0 
0 
0O O OE E E H H XH4 4 4 4 4 4 4 4 4r   rf   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 )rh   z8Rename a field on the model. Might affect db_column too.c                 h    || _         || _        t                                          ||           d S r   )old_nameri   r*   r   )r   r   r   ri   r-   s       r   r   zRenameField.__init__  s1      X.....r   c                 4    | j                                         S r   )r   r   r   s    r   old_name_lowerzRenameField.old_name_lower      }""$$$r   c                 4    | j                                         S r   )ri   r   r   s    r   new_name_lowerzRenameField.new_name_lower"  r   r   c                 J    | j         | j        | j        d}| j        j        g |fS )N)r   r   ri   )r   r   ri   r-   r.   r=   s     r   r?   zRenameField.deconstruct&  s1    /
 

 'V44r   c                 T    |                     || j        | j        | j                   d S r   )rename_fieldr   r   ri   rC   s      r   rE   zRenameField.state_forwards.  s4    t,dmT]	
 	
 	
 	
 	
r   c                 l   |j                             || j                  }|                     |j        j        |          rs|j                             || j                  }|                    ||j                            | j	                  |j                            | j
                             d S d S r   )rG   rH   r   rI   rJ   rK   r   rL   rM   r   ri   rt   s          r   rT   zRenameField.database_forwards3      =**9doFF##M$<$BHMM 	#229doNNJ%% **4=99((77    	 	r   c                 l   |j                             || j                  }|                     |j        j        |          rs|j                             || j                  }|                    ||j                            | j	                  |j                            | j
                             d S d S r   )rG   rH   r   rI   rJ   rK   r   rL   rM   ri   r   rt   s          r   rY   zRenameField.database_backwards=  r   r   c                 6    d| j         d| j        d| j        S )NzRename field r   r\   )r   r   ri   r   s    r   r^   zRenameField.describeG  s'     MMMOOOMM
 	
r   c                 6    d| j         d| j        d| j        S )Nrename_r`   )r   r   r   r   s    r   rb   z#RenameField.migration_name_fragmentN  s1      !!!
 	
r   c                     |                      ||          o9|                                | j        k    p|                                | j        k    S r   )r$   r   r   r   )r   r   r   r#   s       r   r(   zRenameField.references_fieldV  sG    $$Z;; 
JJLLD//V4::<<4CV3V	
r   c                    t          |t                    rF|                     |          r1| j        |j        k    r!t          | j        | j        |j                  gS t          t          |           
                    ||          pB|                    | j        | j        |          p |                    | j        | j        |           S r   )re   rh   r   r   r   r   r   ri   r*   r
   r+   r(   r,   s      r   r+   zRenameField.reduce[  s    y+..	,,Y77	 #y'??? OM&   ^T**11)YGG 
&&tyQQ U))$/4=)TTL
 	
r   )r.   r/   r0   rk   r   r   rm   r   r   r   r   r?   rE   rT   rY   r^   rn   rb   r(   r+   r1   r2   s   @r   rh   rh     s
       BB +H/ / / / /
 % % _% % % _%5 5 5
 
 

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


 
 
 
 
 
 
 
 
r   rh   N)django.db.migrations.utilsr   django.db.modelsr   django.utils.functionalr   baser   r   r
   r4   rg   rf   rh    r   r   <module>r      sU   7 7 7 7 7 7 ) ) ) ) ) ) 3 3 3 3 3 3 . . . . . . . .@
 @
 @
 @
 @
Y @
 @
 @
FN4 N4 N4 N4 N4~ N4 N4 N4b+4 +4 +4 +4 +4. +4 +4 +4\G4 G4 G4 G4 G4 G4 G4 G4TY
 Y
 Y
 Y
 Y
. Y
 Y
 Y
 Y
 Y
r   