Ë
    [ƒ!j4  ã                   óÈ   — d dl mZ d dlmZmZ  G d„ dej
                  «      Z G d„ dej
                  «      Z G d„ dej
                  «      Z G d	„ d
ej
                  «      Z	y)é    )Úmodels)ÚMaxValueValidatorÚMinValueValidatorc                   óà  — e Zd ZdZ ej
                  d¬«      Z ej                  d ed«       e	d«      g¬«      Z
 ej                  dd	d
¬«      Z ej                  dd	d
¬«      Z ej                  dd	d
¬«      Z ej                  dd	d
d¬«      Z ej                   d	d
¬«      Z ej$                  d	d
¬«      Z ej$                  d	d
¬«      Z ej$                  d	d¬«      Z ej                  dd¬«      Z ej
                  d	¬«      Z ej0                  ed	¬«      Z ej6                  d	d	¬«      Z ej$                  d	d
¬«      Z ej0                  ed	¬«      Z ej6                  d	d	¬«      Z ej$                  d	d
¬«      Z  ej6                  d	d	¬«      Z! ej                  dd	d
¬«      Z" ej$                  d	d
¬«      Z# ej6                  d	¬«      Z$ G d„ d«      Z%de&fd„Z'e(dd„«       Z)de*fd„Z+y) ÚBlogSettingszBSingleton blog automation configuration (use BlogSettings.load()).F)Údefaulté   é   é   )r   Ú
validatorsé@   TÚ ©Ú
max_lengthÚblankr   éÿ   u]   Byline on Shopify blog articles (avoids default â€œShopify APIâ€�). Falls back to store name.©r   r   r   Ú	help_text©r   r   zProfessionell und informativé   Úde©r   r   ©r   r   ©Únullr   é    ©Úauto_nowc                   ó   — e Zd ZdZdZy)úBlogSettings.MetaúBlog settingsN)Ú__name__Ú
__module__Ú__qualname__Úverbose_nameÚverbose_name_plural© ó    ú2/var/www/html/shopify_to_digistore/blogs/models.pyÚMetar    .   s   „ Ø&ˆØ-Ñr(   r*   Úreturnc                 ó"   — | j                   xs dS )Nr!   )Ú
store_name©Úselfs    r)   Ú__str__zBlogSettings.__str__2   s   € Ø�‰Ò1 /Ð1r(   c                 óD   — | j                   j                  d¬«      \  }}|S )Nr
   )Úpk)ÚobjectsÚget_or_create)ÚclsÚobjÚ_s      r)   ÚloadzBlogSettings.load5   s"   € à—‘×*Ñ*¨aÐ*Ó0‰ˆˆQØˆ
r(   c                 óø   — ddl m}  || «      }| j                  xs d| j                  xs d| j                  | j
                  | j                  | j                  | j                  xs g |j                  dg «      dœS )Nr   )Úgather_existing_coverageÚStorer   Úlink_targets)ÚnameÚdomainÚdescriptionÚtarget_audienceÚtone_descriptionÚlanguageÚtrending_topicsÚexisting_articles)
Ú blogs.services.inventory_servicer:   r-   Ústore_domainr?   r@   rA   rB   rC   Úget)r/   r:   Úcoverages      r)   Úas_prompt_configzBlogSettings.as_prompt_config:   sq   € ÝMá+¨DÓ1ˆà—O‘OÒ. wØ×'Ñ'Ò-¨2Ø×+Ñ+Ø#×3Ñ3Ø $× 5Ñ 5ØŸ™Ø#×3Ñ3Ò9°rØ!)§¡¨n¸bÓ!Añ	
ð 		
r(   N)r+   r   ),r"   r#   r$   Ú__doc__r   ÚBooleanFieldÚenabledÚPositiveSmallIntegerFieldr   r   Úposts_per_weekÚ	CharFieldÚshopify_blog_idr-   rF   Úblog_author_nameÚURLFieldÚblog_list_urlÚ	TextFieldr?   r@   rA   rB   Úinclude_imagesÚ	JSONFieldÚlistÚexternal_blog_inventoryÚDateTimeFieldÚ"external_blog_inventory_updated_atÚexternal_blog_inventory_errorrC   Útrending_topics_updated_atÚtrending_topics_errorÚlast_run_atÚlast_run_statusÚlast_run_errorÚ
updated_atr*   Ústrr0   Úclassmethodr8   ÚdictrI   r'   r(   r)   r   r      s"  „ ÙLà!ˆf×!Ñ!¨%Ô0€GØ5�V×5Ñ5ØÙ% aÓ(Ñ*;¸AÓ*>Ð?ô€Nð '�f×&Ñ&°"¸DÈ"ÔM€OØ!�×!Ñ!¨S¸ÀbÔI€JØ#�6×#Ñ#¨s¸$ÈÔK€LØ'�v×'Ñ'ØØØØqô	Ðð $�F—O‘O¨$¸Ô;€MØ"�&×"Ñ"¨°rÔ:€KØ&�f×&Ñ&¨T¸2Ô>€OØ'�v×'Ñ'ØÐ:ôÐð  ˆv×Ñ¨1°dÔ;€HØ(�V×(Ñ(°Ô6€Nà.˜f×.Ñ.°tÀ4ÔHÐØ)=¨×)=Ñ)=À4ÈtÔ)TÐ&Ø$4 F×$4Ñ$4¸4ÈÔ$LÐ!à&�f×&Ñ&¨t¸4Ô@€OØ!5 ×!5Ñ!5¸4ÀtÔ!LÐØ,˜F×,Ñ,°4ÀÔDÐà&�&×&Ñ&¨D¸Ô=€KØ&�f×&Ñ&°"¸DÈ"ÔM€OØ%�V×%Ñ%¨D¸"Ô=€Nà%�×%Ñ%¨tÔ4€J÷.ñ .ð2˜ó 2ð òó ðð
 $ô 
r(   r   c                   ó  — e Zd ZdZdZdZdZdZdZedfedfed	fed
fedfedfgZ	 e
j                  ddd¬«      Z e
j                  ddd¬«      Z e
j                  dd¬«      Z e
j                  ddd¬«      Z e
j                  ddd¬«      Z e
j&                  ed¬«      Z e
j                  dd¬«      Z e
j                  ddd¬«      Z e
j&                  ed¬«      Z e
j2                  dd¬«      Z e
j6                  dd¬«      Z e
j                  de	ed¬«      Z e
j<                  dd¬«      Z e
j@                  dd¬«      Z! e
jD                  dddd¬«      Z# e
j&                  ed¬«      Z$ e
j                  d dd¬«      Z% e
j<                  dd¬«      Z& e
j&                  e'd¬«      Z( e
j                  dd¬«      Z) e
jT                  dd¬«      Z+ e
jT                  d¬!«      Z, e
jT                  d¬"«      Z- G d#„ d$«      Z.d%e/fd&„Z0y')(ÚBlogArticleÚplannedÚ
generatingÚreadyÚ
publishingÚ	publishedÚfailedÚPlannedÚ
GeneratingÚReadyÚ
PublishingÚ	PublishedÚFailediô  Tr   r   éÈ   r   éx   i@  r   r   r   r   r   r   é   )r   Úchoicesr   Údb_indexé   é   )Ú
max_digitsÚdecimal_placesr   r   r   ©Úauto_now_addr   c                   ó   — e Zd ZdgZy)úBlogArticle.Metaz-created_atN©r"   r#   r$   Úorderingr'   r(   r)   r*   r   ~   s	   „ Ø!�?‰r(   r*   r+   c                 ó<   — | j                   xs d| j                  › �S )Nz	Article #)Útitler2   r.   s    r)   r0   zBlogArticle.__str__�   s   € Ø�z‰zÒ2˜y¨¯©¨	Ð2Ð2r(   N)1r"   r#   r$   ÚSTATUS_PLANNEDÚSTATUS_GENERATINGÚSTATUS_READYÚSTATUS_PUBLISHINGÚSTATUS_PUBLISHEDÚSTATUS_FAILEDÚSTATUS_CHOICESr   rO   rƒ   Ú	SlugFieldÚslugrT   ÚcontentÚ
meta_titleÚmeta_descriptionrV   rW   ÚtagsÚlocaleÚtarget_keywordÚsecondary_keywordsÚ	DateFieldÚscheduled_daterM   Úcalendar_weekÚstatusrR   Úfeatured_image_urlÚPositiveIntegerFieldÚ
word_countÚDecimalFieldÚkeyword_densityÚinternal_linksÚshopify_article_idÚshopify_article_urlrd   Úshopify_metafieldsÚgeneration_errorrY   Ú	posted_atÚ
created_atra   r*   rb   r0   r'   r(   r)   rf   rf   J   s`  „ Ø€NØ$ÐØ€LØ$ÐØ"ÐØ€Mð 
˜Ð#Ø	˜LÐ)Ø	�wÐØ	˜LÐ)Ø	˜;Ð'Ø	˜Ð!ð€Nð ˆF×Ñ¨°4ÀÔD€EØˆ6×Ñ s°$ÀÔC€DØˆf×Ñ T°2Ô6€GØ!�×!Ñ!¨S¸ÀbÔI€JØ'�v×'Ñ'°3¸dÈBÔOÐØˆ6×Ñ D°Ô5€DØˆV×Ñ¨°DÔ9€Fà%�V×%Ñ%°¸DÈ"ÔM€NØ)˜×)Ñ)°$¸dÔCÐØ%�V×%Ñ%¨4°tÔ<€NØ4�F×4Ñ4¸$ÀdÔK€MàˆV×ÑØØØØô	€Fð )˜Ÿ™¨t¸RÔ@ÐØ,�×,Ñ,°$¸dÔC€JØ)�f×)Ñ)Ø Q¨T¸ô€Oð &�V×%Ñ%¨d¸$Ô?€Nà)˜×)Ñ)°R¸tÈRÔPÐØ)˜&Ÿ/™/°¸bÔAÐØ)˜×)Ñ)°$¸dÔCÐà'�v×'Ñ'¨d¸BÔ?ÐØ$�×$Ñ$¨$°dÔ;€IØ%�×%Ñ%°4Ô8€JØ%�×%Ñ%¨tÔ4€J÷#ñ #ð3˜ô 3r(   rf   c                   ó„  — e Zd Z ej                  eej                  d¬«      Z ej                  dd¬«      Z	 ej                  dddd¬«      Z ej                  dd¬«      Z ej                  d	d
¬«      Z ej                  dd¬«      Z ej                  dd¬«      Z ej"                  d¬«      Z G d„ d«      Zdefd„Zy)ÚBlogArticleImageÚimages©Ú	on_deleteÚrelated_nameTr   r   i   z=Relative path under MEDIA_ROOT; cleared after Shopify upload.r   r   zinline-1r   ru   Úpendingr|   c                   ó   — e Zd ZdgZy)úBlogArticleImage.MetaÚpositionNr€   r'   r(   r)   r*   r¬   ˜   s	   „ Ø�<‰r(   r*   r+   c                 ó8   — | j                   › d| j                  › �S )Nu    â€” )Ú
article_idr­   r.   s    r)   r0   zBlogArticleImage.__str__›   s   € Ø—/‘/Ð" %¨¯© Ð7Ð7r(   N)r"   r#   r$   r   Ú
ForeignKeyrf   ÚCASCADEÚarticlerR   Ú	image_urlrO   Ú
local_filerT   Úalt_textr­   Úprompt_usedÚgeneration_statusrY   r£   r*   rb   r0   r'   r(   r)   r¥   r¥   …   sÎ   „ Øˆf×ÑØØ—.‘.Øô€Gð
  �—‘ d°BÔ7€IØ!�×!Ñ!ØØØØQô	€Jð  ˆv×Ñ d°BÔ7€HØˆv×Ñ¨2°zÔB€HØ"�&×"Ñ"¨°rÔ:€KØ(˜×(Ñ(°BÀ	ÔJÐØ%�×%Ñ%°4Ô8€J÷ ñ  ð8˜ô 8r(   r¥   c                   óø   — e Zd Z ej                  eej                  d¬«      Z ej                  d¬«      Z	 ej                  d¬«      Z
 ej                  ed¬«      Z ej                  d¬«      Z G d	„ d
«      Zy)ÚBlogGenerationLogÚgeneration_logsr§   r   )r   r   Tr   r|   c                   ó   — e Zd ZdgZy)úBlogGenerationLog.Metar£   Nr€   r'   r(   r)   r*   r¼   ª   s	   „ Ø �>‰r(   r*   N)r"   r#   r$   r   r°   rf   r±   r²   rO   Ústepr—   rV   rd   ÚdetailsrY   r£   r*   r'   r(   r)   r¹   r¹   Ÿ   sw   „ Øˆf×ÑØØ—.‘.Ø&ô€Gð
 ˆ6×Ñ rÔ*€DØˆV×Ñ¨Ô,€FØˆf×Ñ t°4Ô8€GØ%�×%Ñ%°4Ô8€J÷"ò "r(   r¹   N)
Ú	django.dbr   Údjango.core.validatorsr   r   ÚModelr   rf   r¥   r¹   r'   r(   r)   Ú<module>rÂ      sO   ðÝ ß GôB
�6—<‘<ô B
ôJ83�&—,‘,ô 83ôv8�v—|‘|ô 8ô4"˜Ÿ™õ "r(   