
    h                     d    S SK Jr  S SKJrJr  S SKJr  S SKJr  SSK	J
r
Jr  S/r " S S\5      rg	)
    )checks)connectionsrouter)Query)cached_property   )NOT_PROVIDEDFieldGeneratedFieldc                      ^  \ rS rSrSrSrSrSrSS.U 4S jjr\	S 5       r
SU 4S jjrU 4S jrS	 rU 4S
 jrS rS rU 4S jrS rS rS rSrU =r$ )r      TN)
db_persistc                  > UR                  SS5      (       a  [        S5      eUR                  SS5      (       d  [        S5      eUR                  S[        5      [        La  [        S5      eUR                  S	[        5      [        La  [        S
5      eUS;  a  [        S5      eXl        X l        X0l        [        TU ]   " S0 UD6  g )NeditableFz"GeneratedField cannot be editable.blankTzGeneratedField must be blank.defaultz%GeneratedField cannot have a default.
db_defaultz.GeneratedField cannot have a database default.)TFz0GeneratedField.db_persist must be True or False. )	
setdefault
ValueErrorgetr	   
expressionoutput_fieldr   super__init__)selfr   r   r   kwargs	__class__s        S/var/www/html/env/lib/python3.13/site-packages/django/db/models/fields/generated.pyr   GeneratedField.__init__   s    Z//ABB  $//<==::i.lBDEE::lL1EMNN]*OPP$($"6"    c                 p    SSK Jn  U" U R                  R                  R                  X R
                  5      $ )Nr   )Col)django.db.models.expressionsr#   model_metadb_tabler   )r   r#   s     r   
cached_colGeneratedField.cached_col#   s(    44::##,,d4E4EFFr!   c                    > XR                   R                  R                  :w  a  US U 4;   a  U R                  n[        TU ]  X5      $ N)r%   r&   r'   r   r   get_col)r   aliasr   r   s      r   r,   GeneratedField.get_col)   s>    JJ$$---,4,2N,,Lwu33r!   c                    > [         TU ]  " U0 UD6  [        U R                  SS9U l        U R
                  R                  5       R                  5        H  u  p4U R                  XCS9  M     g )NF)r%   
alias_cols)lookup_name)	r   contribute_to_classr   r%   _queryr   get_class_lookupsitemsregister_lookup)r   argsr   r1   lookupr   s        r   r2   "GeneratedField.contribute_to_class.   s^    #T4V4$**?#'#4#4#F#F#H#N#N#PK   A $Qr!   c                 F   UR                   R                  S5      " U R                  US S9nU R                  R	                  U R                  SS9nUR                  U5      u  pE[        U R                  SS5      (       a!  UR                  R                  (       d  SU S3nXE4$ )NSQLCompiler)
connectionusingF)allow_joinsconditionalz
CASE WHEN z THEN 1 ELSE 0 END)	opscompilerr3   r   resolve_expressioncompilegetattrfeatures&supports_boolean_expr_in_select_clause)r   r<   rA   resolved_expressionsqlparamss         r   generated_sqlGeneratedField.generated_sql6   s    >>**=9KKJd
 #oo@@KKU A 
 &&':;DOO]E::''NNse#56C{r!   c                 N  > UR                  S5      =(       d    / n/ [        T	U ]  " S0 UD6QU R                  U5      QU R	                  U5      QnU R
                  R                  5       nU R                  Ul        UR                  US9nU(       a  SnUR                  S U 5       5      nU(       a*  UR                  [        R                  " SU U 3U SS95        UR                  S U 5       5      nU(       a*  UR                  [        R                  " S	U U 3U S
S95        U$ )N	databases)rM   z
    c              3      #    U  HB  n[        U[        R                  5      (       d  M$  UR                   S UR                   S3v   MD     g7fz ()N)
isinstancer   Errormsgid.0output_checks     r   	<genexpr>'GeneratedField.check.<locals>.<genexpr>Q   s@      ,$7LlFLL9 :<##$B|&7q9$7
   #A#Az'GeneratedField.output_field has errors:zfields.E223objrT   c              3      #    U  HB  n[        U[        R                  5      (       d  M$  UR                   S UR                   S3v   MD     g7frO   )rQ   r   WarningrS   rT   rU   s     r   rX   rY   _   s@      .$7LlFNN; :<##$B|&7q9$7rZ   z)GeneratedField.output_field has warnings:zfields.W224r   )r   r   check_check_supported_check_persistencer   cloner%   joinappendr   rR   r^   )
r   r   rM   errorsoutput_field_cloneoutput_field_checks	separatorerror_messageswarning_messagesr   s
            r   r_   GeneratedField.checkE   sD   JJ{+1r	
W]$V$
""9-
 $$Y/

 "..446#':: 0666K I&^^ ,$7, N
 LLA$+n%57 (	  )~~ .$7.  
  NNC$+&6%79 (	 r!   c           	         / nU GHB  n[         R                  " X0R                  5      (       d  M+  [        U   nU R                  R                  R
                  (       a0  U R                  R                  R
                  UR                  :w  a  M  UR                  R                  (       a  M  SU R                  R                  R                  ;   a  M  UR                  R                  (       a  M  SU R                  R                  R                  ;   a  GM  UR                  [        R                  " UR                   S3U SS95        GME     U$ )N!supports_stored_generated_columns"supports_virtual_generated_columnsz" does not support GeneratedFields.zfields.E220r[   )r   allow_migrate_modelr%   r   r&   required_db_vendorvendorrE   rn   required_db_featuresrm   rd   r   rR   display_namer   rM   re   dbr<   s        r   r`   GeneratedField._check_supportedo   s    B--b**==$RJ

  33JJ$$77:;L;LL##FFF6::##889 ##EEE7::##889 LL%2233UV (% 2 r!   c           
      H   / nU GH  n[         R                  " X0R                  5      (       d  M+  [        U   nU R                  R                  R
                  (       a0  U R                  R                  R
                  UR                  :w  a  M  U R                  (       dr  UR                  R                  (       dW  SU R                  R                  R                  ;   d3  UR                  [        R                  " UR                   S3U SSS95        U R                  (       d  GM   UR                  R                  (       a  GM>  SU R                  R                  R                  ;   a  GMe  UR                  [        R                  " UR                   S3U SS	S95        GM     U$ )
Nrn   z0 does not support non-persisted GeneratedFields.zfields.E221z!Set db_persist=True on the field.)r\   rT   hintrm   z, does not support persisted GeneratedFields.zfields.E222z"Set db_persist=False on the field.)r   ro   r%   r   r&   rp   rq   r   rE   rn   rr   rd   r   rR   rs   rm   rt   s        r   ra   !GeneratedField._check_persistence   sI   B--b**==$RJ

  33JJ$$77:;L;LL??##FF7::##889 LL%223 4+ + (@ ##EEE6::##889 LL%223 4+ + (A9 J r!   c                    > [         TU ]  5       u  pp4US	 US	 U R                  US'   U R                  US'   U R                  US'   XX44$ )Nr   r   r   r   r   )r   deconstructr   r   r   )r   namepathr7   r   r   s        r   r{   GeneratedField.deconstruct   s[    #(7#6#8 D7O:#|#|!%!2!2~4''r!   c                 6    U R                   R                  5       $ r+   )r   get_internal_type)r   s    r   r    GeneratedField.get_internal_type   s      2244r!   c                 8    U R                   R                  U5      $ r+   )r   db_parametersr   r<   s     r   r   GeneratedField.db_parameters   s      ..z::r!   c                 8    U R                   R                  U5      $ r+   )r   db_type_parametersr   s     r   r   !GeneratedField.db_type_parameters   s      33J??r!   )r3   r   r   r   r+   )__name__
__module____qualname____firstlineno__	generateddb_returningr3   r   r   r   r(   r,   r2   rJ   r_   r`   ra   r{   r   r   r   __static_attributes____classcell__)r   s   @r   r   r      sv    ILFL?C # #" G G
4
B(T:'R(5;@ @r!   N)django.corer   	django.dbr   r   django.db.models.sqlr   django.utils.functionalr    r	   r
   __all__r   r   r!   r   <module>r      s,     ) & 3 !
z@U z@r!   