Ë
    ¹ûàgç  ã                   ód   — 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 dgZ G d„ de«      Zy	)
é    )Úchecks)ÚconnectionsÚrouter)ÚQuery)Úcached_propertyé   )ÚNOT_PROVIDEDÚFieldÚGeneratedFieldc                   ó’   ‡ — e Zd ZdZdZdZdZddœˆ fd„
Zed„ «       Z	dˆ fd„	Z
ˆ fd„Zd„ Zˆ fd	„Zd
„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )r   TN)Ú
db_persistc                ó|  •— |j                  dd«      rt        d«      ‚|j                  dd«      st        d«      ‚|j                  dt        «      t        urt        d«      ‚|j                  d	t        «      t        urt        d
«      ‚|dvrt        d«      ‚|| _        || _        || _        t        ‰| �   di |¤Ž y )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        €ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/models/fields/generated.pyr   zGeneratedField.__init__   s³   ø€ Ø×Ñ˜Z¨Ô/ÜÐAÓBÐBØ× Ñ  ¨$Ô/ÜÐ<Ó=Ð=Ø�:‰:�i¤Ó.´lÑBÜÐDÓEÐEØ�:‰:�l¤LÓ1¼ÑEÜÐMÓNÐNØ˜]Ñ*ÜÐOÓPÐPà$ˆŒØ(ˆÔØ$ˆŒÜ‰ÑÑ"˜6Ó"ó    c                 ór   — ddl m}  || j                  j                  j                  | | j
                  «      S )Nr   )ÚCol)Údjango.db.models.expressionsr!   ÚmodelÚ_metaÚdb_tabler   )r   r!   s     r   Ú
cached_colzGeneratedField.cached_col#   s*   € å4á�4—:‘:×#Ñ#×,Ñ,¨d°D×4EÑ4EÓFÐFr   c                 óŽ   •— || j                   j                  j                  k7  r|d | fv r| j                  }t        ‰| �  ||«      S ©N)r#   r$   r%   r   r   Úget_col)r   Úaliasr   r   s      €r   r)   zGeneratedField.get_col)   sB   ø€ Ø�D—J‘J×$Ñ$×-Ñ-Ò-°,À4ÈÀ,Ñ2NØ×,Ñ,ˆLÜ‰w‰˜u lÓ3Ð3r   c                 óâ   •— t        ‰| �  |i |¤Ž t        | j                  d¬«      | _        | j
                  j                  «       j                  «       D ]  \  }}| j                  ||¬«       Œ y )NF)r#   Ú
alias_cols)Úlookup_name)	r   Úcontribute_to_classr   r#   Ú_queryr   Úget_class_lookupsÚitemsÚregister_lookup)r   Úargsr   r-   Úlookupr   s        €r   r.   z"GeneratedField.contribute_to_class.   sh   ø€ Ü‰Ñ# TÐ4¨VÒ4ä $§*¡*¸Ô?ˆŒà#'×#4Ñ#4×#FÑ#FÓ#H×#NÑ#NÓ#Pò 	BÑˆK˜Ø× Ñ  °[Ð ÕAñ	Br   c                 óB  —  |j                   j                  d«      | j                  |d ¬«      }| j                  j	                  | j                  d¬«      }|j                  |«      \  }}t        | j                  dd«      r|j                  j                  sd|› d�}||fS )NÚSQLCompiler)Ú
connectionÚusingF)Úallow_joinsÚconditionalz
CASE WHEN z THEN 1 ELSE 0 END)	ÚopsÚcompilerr/   r   Úresolve_expressionÚcompileÚgetattrÚfeaturesÚ&supports_boolean_expr_in_select_clause)r   r7   r<   Úresolved_expressionÚsqlÚparamss         r   Úgenerated_sqlzGeneratedField.generated_sql6   s�   € Ø9�:—>‘>×*Ñ*¨=Ó9Ø�K‰K J°dô
ˆð #Ÿo™o×@Ñ@Ø�K‰K Uð Aó 
Ðð ×&Ñ&Ð':Ó;‰ˆˆVä�D—O‘O ]°EÔ:Ø×'Ñ'×NÒNà˜s˜eÐ#5Ð6ˆCØ�Fˆ{Ðr   c                 ó2  •— |j                  d«      xs g }g t        ‰	| �  di |¤Ž¢| j                  |«      ¢| j	                  |«      ¢}| j
                  j                  «       }| j                  |_        |j                  |¬«      }|rŽd}|j                  d„ |D «       «      }|r,|j                  t        j                  d|› |› �| d¬«      «       |j                  d„ |D «       «      }|r,|j                  t        j                  d	|› |› �| d
¬«      «       |S )NÚ	databases)rG   z
    c              3   óˆ   K  — | ]:  }t        |t        j                  «      r|j                  › d |j                  › d�–— Œ< y­w©z (ú)N)Ú
isinstancer   ÚErrorÚmsgÚid©Ú.0Úoutput_checks     r   ú	<genexpr>z'GeneratedField.check.<locals>.<genexpr>Q   s?   è ø€ ò ,à Ü˜l¬F¯L©LÔ9ð  ×#Ñ#Ð$ B |§¡Ð&7°qÔ9ñ,ùó   ‚A Az'GeneratedField.output_field has errors:zfields.E223©ÚobjrN   c              3   óˆ   K  — | ]:  }t        |t        j                  «      r|j                  › d |j                  › d�–— Œ< y­wrI   )rK   r   ÚWarningrM   rN   rO   s     r   rR   z'GeneratedField.check.<locals>.<genexpr>_   s?   è ø€ ò .à Ü˜l¬F¯N©NÔ;ð  ×#Ñ#Ð$ B |§¡Ð&7°qÔ9ñ.ùrS   z)GeneratedField.output_field has warnings:zfields.W224r   )r   r   ÚcheckÚ_check_supportedÚ_check_persistencer   Úcloner#   ÚjoinÚappendr   rL   rW   )
r   r   rG   ÚerrorsÚoutput_field_cloneÚoutput_field_checksÚ	separatorÚerror_messagesÚwarning_messagesr   s
            €r   rX   zGeneratedField.checkE   sD  ø€ Ø—J‘J˜{Ó+Ò1¨rˆ	ð
Ü‰W‰]Ñ$˜VÑ$ð
à×"Ñ" 9Ó-ð
ð ×$Ñ$ YÓ/ð
ˆð
 "×.Ñ.×4Ñ4Ó6ÐØ#'§:¡:ÐÔ Ø0×6Ñ6ÀÐ6ÓKÐÙØ ˆIØ&Ÿ^™^ñ ,à$7ô,ó ˆNñ
 Ø—‘Ü—L‘LØAØ$˜+ nÐ%5ð7à Ø(ô	ôð  )Ÿ~™~ñ .à$7ô.ó  Ðñ
  Ø—‘Ü—N‘NØCØ$˜+Ð&6Ð%7ð9à Ø(ô	ôð ˆr   c                 ó\  — g }|D �]#  }t        j                  || j                  «      sŒ%t        |   }| j                  j                  j
                  r.| j                  j                  j
                  |j                  k7  rŒ||j                  j                  rŒ“d| j                  j                  j                  v rŒ¶|j                  j                  rŒÍd| j                  j                  j                  v rŒð|j                  t        j                  |j                  › d�| d¬«      «       �Œ& |S )NÚ!supports_stored_generated_columnsÚ"supports_virtual_generated_columnsz" does not support GeneratedFields.zfields.E220rT   )r   Úallow_migrate_modelr#   r   r$   Úrequired_db_vendorÚvendorr@   rf   Úrequired_db_featuresre   r]   r   rL   Údisplay_name©r   rG   r^   Údbr7   s        r   rY   zGeneratedField._check_supportedo   sù   € ØˆØó 	ˆBÜ×-Ñ-¨b°$·*±*Ô=ØÜ$ R™ˆJà—
‘
× Ñ ×3Ò3Ø—J‘J×$Ñ$×7Ñ7¸:×;LÑ;LÒLàà×#Ñ#×FÓFØ6Ø—:‘:×#Ñ#×8Ñ8ò9ð ×#Ñ#×EÓEØ7Ø—:‘:×#Ñ#×8Ñ8ò9ð —‘Ü—L‘LØ%×2Ñ2Ð3Ð3UÐVØ Ø(ôöð%	ð2 ˆr   c           	      óü  — g }|D �]s  }t        j                  || j                  «      sŒ%t        |   }| j                  j                  j
                  r.| j                  j                  j
                  |j                  k7  rŒ|| j                  sm|j                  j                  sWd| j                  j                  j                  v s5|j                  t        j                  |j                  › d�| dd¬«      «       | j                  s�Œ|j                  j                  r�Œd| j                  j                  j                  v r�Œ?|j                  t        j                  |j                  › d�| dd	¬«      «       �Œv |S )
Nrf   z0 does not support non-persisted GeneratedFields.zfields.E221z!Set db_persist=True on the field.)rU   rN   Úhintre   z, does not support persisted GeneratedFields.zfields.E222z"Set db_persist=False on the field.)r   rg   r#   r   r$   rh   ri   r   r@   rf   rj   r]   r   rL   rk   re   rl   s        r   rZ   z!GeneratedField._check_persistenceŒ   sH  € ØˆØó $	ˆBÜ×-Ñ-¨b°$·*±*Ô=ØÜ$ R™ˆJà—
‘
× Ñ ×3Ò3Ø—J‘J×$Ñ$×7Ñ7¸:×;LÑ;LÒLàØ—?’?Ø×#Ñ#×FÒFØ7Ø—:‘:×#Ñ#×8Ñ8ñ9ð —‘Ü—L‘LØ%×2Ñ2Ð3ð 4+ð +à Ø(Ø@ôôð �ŒØ×#Ñ#×EÔEØ6Ø—:‘:×#Ñ#×8Ñ8ó9ð —‘Ü—L‘LØ%×2Ñ2Ð3ð 4+ð +à Ø(ØAôöð9$	ðJ ˆr   c                 óœ   •— t         ‰| �  «       \  }}}}|d= |d= | j                  |d<   | j                  |d<   | j                  |d<   ||||fS )Nr   r   r   r   r   )r   Údeconstructr   r   r   )r   ÚnameÚpathr3   r   r   s        €r   rq   zGeneratedField.deconstructµ   sc   ø€ Ü#(¡7Ñ#6Ó#8Ñ ˆˆd�D˜&Ø�7ˆOØ�:ÐØ#Ÿ™ˆˆ|ÑØ#Ÿ™ˆˆ|ÑØ!%×!2Ñ!2ˆˆ~ÑØ�T˜4 Ð'Ð'r   c                 ó6   — | j                   j                  «       S r(   )r   Úget_internal_type)r   s    r   ru   z GeneratedField.get_internal_type¾   s   € Ø× Ñ ×2Ñ2Ó4Ð4r   c                 ó8   — | j                   j                  |«      S r(   )r   Údb_parameters©r   r7   s     r   rw   zGeneratedField.db_parametersÁ   s   € Ø× Ñ ×.Ñ.¨zÓ:Ð:r   c                 ó8   — | j                   j                  |«      S r(   )r   Údb_type_parametersrx   s     r   rz   z!GeneratedField.db_type_parametersÄ   s   € Ø× Ñ ×3Ñ3°JÓ?Ð?r   r(   )Ú__name__Ú
__module__Ú__qualname__Ú	generatedÚdb_returningr/   r   r   r   r&   r)   r.   rE   rX   rY   rZ   rq   ru   rw   rz   Ú__classcell__)r   s   @r   r   r      sk   ø„ Ø€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   