
    PIis                     f    d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ 	  G d dee      Zy	)
    )AbstractObject)AbstractCrudObject)ObjectParser)FacebookRequest)TypeChecker)HasAdLabelsc                   l    e Zd Zd\ fd	Z G d dej
                        Z G d d      Z G d d      Z G d d	      Z G d
 d      Z	 G d d      Z
 G d d      Z G d d      Z G d d      Zed        Zd]dZd]dZd]dZd]dZd]dZd]dZd]dZd]dZd]dZd^dZd]dZd]d Zd]d!Zd]d"Zi d#d$d%d$d&d'd(d)d*d)d+d,d-d.d/d$d0d1d2d3d4dd5d6d7d$d8dd9d$d:d;d<d)i d=d>d?d@dAd$dBd1dCd	dDdEdFdGdHd$dIdJdKd$dLd$dMdNdOd$dPdQdRdSdTd dUd$ddVdWd;d)d.d$d$d$dXdEdYdZZed[        Z xZ S )_Adc                 >    d| _         t        t        |   |||       y )NT)_isAdsuperr
   __init__)selffbid	parent_idapi	__class__s       l/var/www/webhook.estador.de/web/meta/bot/venv/lib/python3.12/site-packages/facebook_business/adobjects/ad.pyr   zAd.__init__   s    
b$ y#6    c                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0y/)0Ad.Field
account_idad_active_timead_review_feedbackad_schedule_end_timead_schedule_start_timeadlabelsadsetadset_id
bid_amountbid_infobid_typecampaigncampaign_idconfigured_statusconversion_domainconversion_specscreated_timecreativecreative_asset_groups_specdemolink_hashdisplay_sequenceeffective_statusengagement_audiencefailed_delivery_checksidissues_infolast_updated_by_app_idname	placementpreview_shareable_linkpriorityrecommendations	source_adsource_ad_idstatus	targeting%tracking_and_conversion_with_defaultstracking_specsupdated_time
adset_specaudience_iddate_formatdraft_adgroup_idexecution_optionsinclude_demolink_hashesfilenameN)1__name__
__module____qualname__r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE    r   r   Fieldr      s    !
)15!9!
#//-%%A"'--3!9#!9	!9+	%	0W-)%!
##-/";r   rJ   c                        e Zd ZdZdZdZdZdZy)
Ad.BidTypeABSOLUTE_OCPMCPACPCCPMMULTI_PREMIUMN)rF   rG   rH   absolute_ocpmcpacpccpmmulti_premiumrI   r   r   BidTyperL   O   s    ''r   rW   c                       e Zd ZdZdZdZdZy)Ad.ConfiguredStatusACTIVEARCHIVEDDELETEDPAUSEDNrF   rG   rH   activearchiveddeletedpausedrI   r   r   ConfiguredStatusrY   V       r   rc   c                   <    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZy)Ad.EffectiveStatusrZ   ADSET_PAUSEDr[   CAMPAIGN_PAUSEDr\   DISAPPROVED
IN_PROCESSr]   PENDING_BILLING_INFOPENDING_REVIEWPREAPPROVEDWITH_ISSUESN)rF   rG   rH   r_   adset_pausedr`   campaign_pausedra   disapproved
in_processrb   pending_billing_infopending_reviewpreapprovedwith_issuesrI   r   r   EffectiveStatusrf   \   s?    %+#!
5)##r   rw   c                       e Zd ZdZdZdZdZy)	Ad.StatusrZ   r[   r\   r]   Nr^   rI   r   r   Statusry   j   rd   r   rz   c                   \    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZy)Ad.DatePresetdata_maximumlast_14dlast_28dlast_30dlast_3dlast_7dlast_90d
last_monthlast_quarterlast_week_mon_sunlast_week_sun_sat	last_yearmaximum
this_monththis_quarterthis_week_mon_todaythis_week_sun_today	this_yeartoday	yesterdayN)rF   rG   rH   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI   r   r   
DatePresetr|   p   sj    %!
%//	!
%33		r   r   c                       e Zd ZdZdZdZy)Ad.ExecutionOptionsinclude_recommendationssynchronous_ad_reviewvalidate_onlyN)rF   rG   rH   r   r   r   rI   r   r   ExecutionOptionsr      s    "; 7'r   r   c                       e Zd ZdZdZy)Ad.OperatorALLANYN)rF   rG   rH   allanyrI   r   r   Operatorr      s    r   r   c                       e Zd ZdZdZdZy)Ad.StatusOptionrZ   INHERITED_FROM_SOURCEr]   N)rF   rG   rH   r_   inherited_from_sourcerb   rI   r   r   StatusOptionr      s     7r   r   c                      y)NadsrI   )clss    r   get_endpointzAd.get_endpoint   s    r   c                 ^    ddl m}  || j                  |      j                  ||||||      S )Nr   )	AdAccount)r   r   )%facebook_business.adobjects.adaccountr   _api	create_ad)	r   r   fieldsparamsbatchsuccessfailurependingr   s	            r   
api_createzAd.api_create   s/    CTYYY7AA&&RWY`bikrssr   c                 p   ddl m} ||||j                  d       i }i }	t        | d   dd| j                  t        ||	      t        dt        |       	      }
|
j                  |       |
j                  |       ||
j                  |||
       |
S |r|
S | j                          |
j                         S )Nr   	api_utils:`success` and `failure` callback only work for batch call.r0   DELETE/NODEreuse_objectnode_idmethodendpointr   param_checkertarget_classapi_typeresponse_parserr   r   )facebook_business.utilsr   warningr   r   r   r   r   
add_params
add_fieldsadd_to_batchassure_callexecuter   r   r   r   r   r   r   r   param_typesenumsrequests              r   
api_deletezAd.api_delete   s    5=g1W5H


X
Y

!J		%k59+(d;	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       dddddd}dg di}	t        | d	   d
d| j                  t        ||	      t        dt        |             }
|
j                  |       |
j                  |       ||
j                  |||       |
S |r|
S | j                          |
j                         S )Nr   r   r   mapdate_preset_enumbool)am_call_tagsdate_presetfrom_adtablereview_feedback_breakdown
time_range)r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r0   GETr   r   r   r   r   )r   r   r   r   r   r   r
   r   r   r   r   r   r   r   s              r   api_getz
Ad.api_get   s    5=g1W5H


X
Y!-")/
  !
0 "J		%k59(d;	
 	6"6"   INN??$$r   c                 |   ddl m} ||||j                  d       i ddddddd	d
ddddddddddddddddddddddddddd di}t        j                  j
                  j                         t        j                  j
                  j                         d!}	t        | d"   d#d$| j                  t        ||	      t        d%t        | &      '      }
|
j                  |       |
j                  |       ||
j                  |||(       |
S |r|
S | j                          |
j!                         S ))Nr   r   r   r   datetimer   r   list<Object>r?   AdSetr@   stringr    intr&   r)   
AdCreativer*   Objectr,   unsigned intrB   r.   r   rC   list<execution_options_enum>rD   r3   r6   r:   status_enumr=   )execution_options_enumr   r0   POSTr   r   r   r   r   )r   r   r   r
   r   __dict__valuesrz   r   r   r   r   r   r   r   r   r   r   s              r   
api_updatezAd.api_update   s   5=g1W5H


X
Y
"J
$j
 
 '	

 8
 %
  
 
 )(
 
 
 "6
  !?
 &v
 H
  !
" m#
$ h%
* ')&9&9&B&B&I&I&K99--446
 "J		%k59(d;	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddlm} i }	i }
t        | d   dd| j                  t        |	|
      |dt        || j                  	      
      }|j                  |       |j                  |       ||j                  |||       |S |r|S | j                          |j                         S )Nr   r   r   )r   r0   r   z/adcreativesEDGEr   r   r   r   )r   r   r   &facebook_business.adobjects.adcreativer   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   get_ad_creativeszAd.get_ad_creatives'  s    5=g1W5H


X
YE

!J#		%k59#(jdiiP	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddd}dt        j                  j
                  j                         i}	t        | d   d	d
| j                  t        ||	      t        dt        t        | j                              }
|
j                  |       |
j                  |       ||
j                  |||       |
S |r|
S | j                          |
j                         S )Nr   r   r   r   r   )r   rC   r   r0   r   z	/adlabelsr   r   r   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   s              r   create_ad_labelzAd.create_ad_labelF  s    5=g1W5H


X
Y&!?

 %b&9&9&B&B&I&I&K
 "J 		%k59(bdiiH	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddlm} ddi}	i }
t        | d   dd	| j                  t        |	|
      |d
t        || j                              }|j                  |       |j                  |       ||j                  |||       |S |r|S | j                          |j                         S )Nr   r   r   )AdRulepass_evaluationr   r0   r   z/adrules_governedr   r   r   r   )r   r   r   "facebook_business.adobjects.adruler   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   get_ad_rules_governedzAd.get_ad_rules_governedg  s    5=g1W5H


X
Y=v

!J(		%k59(f$))L	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddddd}dt        j                  j
                  j                         i}	t        | d	   d
d| j                  t        ||	      t        dt        t        | j                              }
|
j                  |       |
j                  |       ||
j                  |||       |
S |r|
S | j                          |
j                         S )Nr   r   r   r   list<string>r   r   )r   r-   r   updated_sincer0   r   /copiesr   r   r   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   s              r   
get_copieszAd.get_copies  s    5=g1W5H


X
Y- ."	
  6 6 = = ?
 "J		%k59(bdiiH	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddddd}dt        j                  j
                  j                         i}	t        | d	   d
d| j                  t        ||	      t        dt        t        | j                              }
|
j                  |       |
j                  |       ||
j                  |||       |
S |r|
S | j                          |
j                         S )Nr   r   r   r   r   r   status_option_enum)r   creative_parametersrename_optionsstatus_optionr0   r   r   r   r   r   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   s              r   create_copyzAd.create_copy  s    5=g1W5H


X
Y #/&1	
 !"//":":"A"A"C
 "J		%k59(bdiiH	
 	6"6"   INN??$$r   c                     ddl m} ||||j                  d       ddlm}	 |r| j                  ||||||      S i ddddd	d
ddddddddddddddddddddddddddd dd!dd"d#ddd$}
|	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         d%}t        | d&   d'd(| j                   t#        |
|      |	d)t%        |	| j                   *      d+,	      }|j'                  |       |j)                  |       ||j+                  |||-       |S |r|S | j-                          |j/                         S ).Nr   r   r   AdsInsightsaction_attribution_windows%list<action_attribution_windows_enum>action_breakdownslist<action_breakdowns_enum>action_report_timeaction_report_time_enum
breakdownslist<breakdowns_enum>r   r   default_summaryr   export_columnsr   export_formatr   export_namer   	filteringr   graph_cachelevel
level_enumlimitr   product_id_limitsortsummary$list<summary_action_breakdowns_enum>r   	list<map>summary_action_breakdownstime_incrementr   time_rangesuse_account_attribution_settinguse_unified_attribution_settingaction_attribution_windows_enumaction_breakdowns_enumr  breakdowns_enumr   r  summary_action_breakdowns_enumr0   r   	/insightsr   r   F	r   r   r   r   r   r   r   r   include_summaryr   )r   r   r   'facebook_business.adobjects.adsinsightsr  get_insights_asyncActionAttributionWindowsr   r   ActionBreakdownsActionReportTime
Breakdownsr   LevelSummaryActionBreakdownsr   r   r   r   r   r   r   r   r   )r   r   r   is_asyncr   r   r   r   r   r  r   r   r   s                r   get_insightszAd.get_insights  s   5=g1W5H


X
YG((RYZ
Z
(*Q
!?
 !";
 1	

 -
 v
 n
 X
 8
 n
 
 6
 \
 U
 
  N!
" ~#
$ *P&&/5/5/
4 0;/S/S/\/\/c/c/e&1&B&B&K&K&R&R&T'2'C'C'L'L'S'S'U*55>>EEG + 6 6 ? ? F F H%++44;;=.9.Q.Q.Z.Z.a.a.c
 "J 		%k59$(ktyyQ!

 	6"6"   INN??$$r   c                 x   ddl m} ||||j                  d       ddlm} ddlm}	 i dddd	d
dddddddddddddddddddddddddd dd!dd"dd#d$ddd%}
|	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         |	j                  j                  j                         d&}|Lj!                  d      j!                  d      n	t#               d<   d   j%                  fd'|D               t'        | d(   d)d*| j(                  t+        |
|      |d+t-        || j(                  ,      d-.	      }|j/                         ||j1                  |||/       |S |r|S | j3                          |j5                         S )0Nr   r   r   )AdReportRunr  r  r  r	  r
  r  r  r  r  r   r   r  r   r  r   r  r   r  r   r  r   r  r  r  r  r   r  r  r  r  r   r  r  r#  c              3   2   K   | ]  }|d    vs|  yw)r   NrI   ).0fieldr   s     r   	<genexpr>z(Ad.get_insights_async.<locals>.<genexpr>8  s     #_efU]N^A^E#_s   r0   r   r(  r   r   Fr)  r   )r   r   r   'facebook_business.adobjects.adreportrunr6  r+  r  r-  r   r   r.  r/  r0  r   r1  r2  getlistextendr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r6  r  r   r   r   s     `          r   r,  zAd.get_insights_async  s   5=g1W5H


X
YGG
(*Q
!?
 !";
 1	

 -
 v
 n
 X
 8
 n
 
 6
 \
 U
 
  N!
" ~#
$ *P&&/5/5/
4 0;/S/S/\/\/c/c/e&1&B&B&K&K&R&R&T'2'C'C'L'L'S'S'U*55>>EEG + 6 6 ? ? F F H%++44;;=.9.Q.Q.Z.Z.a.a.c
 7=zz(7K7Wvzz(3]a]cF88###_v#__!J 		%k59$(ktyyQ!

 	6"   INN??$$r   c                    ddl m} ||||j                  d       ddlm} i }	i }
t        | d   dd| j                  t        |	|
      |dt        || j                  	      
      }|j                  |       |j                  |       ||j                  |||       |S |r|S | j                          |j                         S )Nr   r   r   )Leadr0   r   z/leadsr   r   r   r   )r   r   r    facebook_business.adobjects.leadr@  r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r@  r   r   r   s               r   	get_leadszAd.get_leadsP  s    5=g1W5H


X
Y9

!J		%k59(d		J	
 	6"6"   INN??$$r   c                 |   ddl m} ||||j                  d       ddlm} dddddd	d
dddddd	d
d}	|j
                  j                  j                         |j                  j                  j                         |j                  j                  j                         d}
t        | d   dd| j                  t        |	|
      |dt        || j                              }|j                  |       |j                  |       ||j!                  |||       |S |r|S | j#                          |j%                         S )Nr   r   r   )	AdPreviewad_format_enumcreative_feature_enumr   r   r   r   r   r   render_type_enum)	ad_formatcreative_featuredynamic_asset_labeldynamic_creative_specdynamic_customizationend_dateheightlocaleplace_page_idpostproduct_item_idsrender_type
start_datewidth)rE  rF  rG  r0   r   z	/previewsr   r   r   r   )r   r   r   %facebook_business.adobjects.adpreviewrD  AdFormatr   r   CreativeFeature
RenderTyper   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rD  r   r   r   s               r   get_previewszAd.get_previewso  sE   5=g1W5H


X
YC) 7#+%-%-"$" .-$#
" (0099@@B%.%>%>%G%G%N%N%P ) 4 4 = = D D F

 "J 		%k59"(iTYYO	
 	6"6"   INN??$$r   c                    ddl m} ||||j                  d       ddlm} i }	i }
t        | d   dd| j                  t        |	|
      |dt        || j                  	      
      }|j                  |       |j                  |       ||j                  |||       |S |r|S | j                          |j                         S )Nr   r   r   )TargetingSentenceLiner0   r   z/targetingsentencelinesr   r   r   r   )r   r   r   1facebook_business.adobjects.targetingsentenceliner\  r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r\  r   r   r   s               r   get_targeting_sentence_lineszAd.get_targeting_sentence_lines  s    5=g1W5H


X
Y[

!J.		%k59.(6KQUQZQZ[	
 	6"6"   INN??$$r   r   r   r   r   AdgroupReviewFeedbackr   r   r   r   zlist<AdLabel>r   r   r   r    r   r!   zmap<string, unsigned int>r"   r#   Campaignr$   r%   r&   r'   zlist<ConversionActionQuery>r(   r)   r   r*   AdCreativeAssetGroupsSpecr+   r,   r-   r.   r   r/   zlist<DeliveryCheck>r0   r1   zlist<AdgroupIssuesInfo>r2   r3   r4   	Placementr5   r6   r   r7   zlist<AdRecommendation>r8   r9   	Targeting!TrackingAndConversionWithDefaultszlist<ExecutionOptions>file)r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   c                    i }t         j                  j                  j                         |d<   t         j                  j                  j                         |d<   t         j
                  j                  j                         |d<   t         j                  j                  j                         |d<   t         j                  j                  j                         |d<   t         j                  j                  j                         |d<   t         j                  j                  j                         |d<   t         j                  j                  j                         |d<   |S )	NrW   rc   rw   rz   r   r   r   r   )r
   rW   r   r   rc   rw   rz   r   r   r   r   )r   field_enum_infos     r   _get_field_enum_infozAd._get_field_enum_info  s    %'ZZ%8%8%?%?%A	".0.A.A.J.J.Q.Q.S*+-/-?-?-H-H-O-O-Q)*$&II$6$6$=$=$?!(*(>(>(E(E(G%.0.A.A.J.J.Q.Q.S*+&(kk&:&:&A&A&C
#*,//*B*B*I*I*K'r   )NNN)NNNNNF)NNFNNNF)!rF   rG   rH   r   r   rJ   rW   rc   rw   rz   r   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r  r4  r,  rB  rZ  r^  _field_typesrh  __classcell__)r   s   @r   r
   r
      s   
7.$$ .`( ( $ $    ,( (
    t%<7%r0%d%>%B%@!%F!%F>%@A%F%>.%`%>/h/(/ 	5/ 	
	/
 	!*/ 	O/ 	/ 	H/ 	e/ 	// 	I/ 	J/ 	x/ 	// 	X/  	9!/" 	
#/$ 	L%/& 	%&A'/( 	)/* 	E+/, 	--/. 	v//0 	!"71/2 	h3/4 	05/6 	!(7/8 	9/: 	[;/< 	!(=/> 	N?/@ 	3A/B 	TC/D 	E/F  1T7"$5#)]/L` 
 
r   r
   N)*facebook_business.adobjects.abstractobjectr   .facebook_business.adobjects.abstractcrudobjectr   (facebook_business.adobjects.objectparserr   facebook_business.apir   facebook_business.typecheckerr   facebook_business.mixinsr   r
   rI   r   r   <module>rr     s1    F M A 1 5 0ccr   