Ë
    ÁtZg$/  ã                   ó6  — d dl mZ d dlZd dl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mZmZmZmZ d d	lmZ d dlZ ej*                  e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z ej*                  e«      Z G d„ de«      Zy)é    )ÚrenderN)ÚJsonResponse)ÚView)Úcsrf_exempt)Úmethod_decoratoré   )ÚRegionÚDistrictÚCategoryÚCultureÚFarmer)Útransactionc                   ó:   ‡ — e Zd Z ee«      ˆ fd„«       Zd„ Zˆ xZS )ÚFetchAndSaveRegionsViewc                 ó"   •— t        ‰| �  |i |¤ŽS ©N©ÚsuperÚdispatch©ÚselfÚargsÚkwargsÚ	__class__s      €ú1/var/www/tradingcms/tradingcms/farmerapp/views.pyr   z FetchAndSaveRegionsView.dispatch   ó   ø€ ä‰wÑ Ð0¨Ñ0Ð0ó    c                 óÐ  — d}ddi}	 t        j                  ||¬«      }|j                  «        |j                  «       }t        j                  «       5  |D ])  }	|	d   }
|	d	   }|	d
   }t        j                  ||
|¬«       Œ+ 	 d d d «       t        ddid¬«      S # t         j                  j
                  $ r"}t        dt        |«      id¬«      cY d }~S d }~ww xY w# 1 sw Y   ŒZxY w)Nz#https://tripoli.land/api/v1/regionsÚAuthorizationÚ 861b2a50ab7a3b40ae75375fb056c362©ÚheadersÚerroréô  ©ÚstatusÚidÚname_ukÚslug)ÚnameÚtripoli_region_idr)   Úmessageú3Data successfully fetched and saved to the databaseéÈ   )ÚrequestsÚgetÚraise_for_statusÚjsonÚ
exceptionsÚRequestExceptionr   Ústrr   Úatomicr	   Úcreate_or_update)r   Úrequestr   r   Úurlr"   ÚresponseÚdataÚeÚregion_dataÚ	region_idr(   r)   s                r   r0   zFetchAndSaveRegionsView.get   sñ   € Ø3ˆØ"Ð$FÐGˆð	?Ü—|‘| C°Ô9ˆHØ×%Ñ%Ô'Ø—=‘=“?ˆDô ×ÑÓ!ñ 	^Ø#ò ^�Ø'¨Ñ-�	Ø% iÑ0�Ø" 6Ñ*�ä×'Ñ'¨WÈ	ÐX\Ö]ñ^÷	^ô ˜YÐ(]Ð^ÐgjÔkÐkøô ×"Ñ"×3Ñ3ò 	?Ü ¬#¨a«&Ð 1¸#Ô>Õ>ûð	?ú÷	^ð 	^ús)   ˆ7B Á/CÂCÂ7CÃCÃCÃC%©Ú__name__Ú
__module__Ú__qualname__r   r   r   r0   Ú__classcell__©r   s   @r   r   r      s    ø„ Ù�kÓ"ó1ó #ð1ölr   r   c                   ó:   ‡ — e Zd Z ee«      ˆ fd„«       Zd„ Zˆ xZS )ÚFetchAndSaveDistrictsViewc                 ó"   •— t        ‰| �  |i |¤ŽS r   r   r   s      €r   r   z"FetchAndSaveDistrictsView.dispatch+   r   r   c           	      ó–  — ddi}t         j                  j                  «       }t        j                  «       5  |D ]�  }|j
                  }d|› �}	 t        j                  ||¬«      }	|	j                  «        |	j                  «       }
|
d   D ]J  }|d	   }|d
   }|d   }t         j                  j                  |¬«      }t        j                  ||||¬«       ŒL ŒŸ 	 d d d «       t        ddid¬«      S # t        j                  j                  $ r-}t        dt        |«      id¬«      cY d }~c cd d d «       S d }~ww xY w# 1 sw Y   ŒexY w)Nr   r    z$https://tripoli.land/api/v1/regions/r!   r#   r$   r%   Ú	districtsr'   r(   r)   )r+   )r*   Útripoli_district_idr)   Úregionr,   r-   r.   )r	   ÚobjectsÚallr   r6   r+   r/   r0   r1   r2   r3   r4   r   r5   r
   r7   )r   r8   r   r   r"   ÚregionsrK   r>   r9   r:   r;   r<   Údistrict_dataÚdistrict_idr(   r)   Údistrict_regions                    r   r0   zFetchAndSaveDistrictsView.get/   s[  € Ø"Ð$FÐGˆô —.‘.×$Ñ$Ó&ˆä×ÑÓ!ñ 	@Ø!ò @�Ø"×4Ñ4�	Ø<¸Y¸KÐH�ðGÜ'Ÿ|™|¨C¸ÔA�HØ×-Ñ-Ô/Ø#Ÿ=™=›?�Dð
 &*¨+Ñ%6ò 	@�MØ"/°Ñ"5�KØ+¨IÑ6�GØ(¨Ñ0�Dô '-§n¡n×&8Ñ&8È9Ð&8Ó&U�Oô ×-Ñ-°7ÐP[ÐbfÐo~Öñ	@ñ@÷	@ô0 ˜YÐ(]Ð^ÐgjÔkÐkøô  ×*Ñ*×;Ñ;ò GÜ'¨´#°a³&Ð(9À#ÔFÖF÷	@ñ 	@ûðGú÷	@ð 	@ús<   ·D?Á7C2ÂAD?Ã2D<ÄD7Ä&D<Ä'D?Ä7D<Ä<D?Ä?Er?   rD   s   @r   rF   rF   *   s    ø„ Ù�kÓ"ó1ó #ð1ölr   rF   c                   ó:   ‡ — e Zd Z ee«      ˆ fd„«       Zd„ Zˆ xZS )ÚFetchAndSaveCategoriesViewc                 ó"   •— t        ‰| �  |i |¤ŽS r   r   r   s      €r   r   z#FetchAndSaveCategoriesView.dispatchQ   r   r   c           
      óJ  — d}ddi}	 t        j                  ||¬«      }|j                  «        |j                  «       }t        j                  «       5  |D ]*  }	|	d   }
|	d	   }|	d
   }	 t        j                  ||
|¬«       Œ, 	 d d d «       t        ddid¬«      S # t         j                  j
                  $ r"}t        dt        |«      id¬«      cY d }~S d }~ww xY w# t        $ r0}t        ddt        |«      › �id¬«      cY d }~c cd d d «       S d }~ww xY w# 1 sw Y   Œ–xY w)Nz&https://tripoli.land/api/v1/categoriesr   r    r!   r#   r$   r%   r'   r(   r)   )r*   Útripoli_category_idr)   z Error processing category data: r,   r-   r.   )r/   r0   r1   r2   r3   r4   r   r5   r   r6   r   r7   Ú	Exception)r   r8   r   r   r9   r"   r:   r;   r<   Úcategory_dataÚcategory_idr(   r)   s                r   r0   zFetchAndSaveCategoriesView.getU   s:  € Ø6ˆØ"Ð$FÐGˆð	?Ü—|‘| C°Ô9ˆHØ×%Ñ%Ô'Ø—=‘=“?ˆDô ×ÑÓ!ñ 		lØ!%ò l�Ø+¨DÑ1�Ø'¨	Ñ2�Ø$ VÑ,�ðlÜ×-Ñ-°7ÐP[ÐbfÖgñl÷		lô ˜YÐ(]Ð^ÐgjÔkÐkøô ×"Ñ"×3Ñ3ò 	?Ü ¬#¨a«&Ð 1¸#Ô>Õ>ûð	?ûô !ò lÜ'¨Ð4TÔUXÐYZÓU[ÐT\Ð2]Ð(^ÐgjÔkÖk÷		lñ 		lûðlú÷		lð 		lúsY   ˆ7B ÁDÁ)CÂDÂCÂ8CÃCÃCÃ	DÃ&DÄ DÄDÄDÄDÄD"r?   rD   s   @r   rS   rS   P   s    ø„ Ù�kÓ"ó1ó #ð1ölr   rS   c                   ó:   ‡ — e Zd Z ee«      ˆ fd„«       Zd„ Zˆ xZS )Ú(FetchAndSaveCulturesForAllCategoriesViewc                 ó"   •— t        ‰| �  |i |¤ŽS r   r   r   s      €r   r   z1FetchAndSaveCulturesForAllCategoriesView.dispatcho   r   r   c                 ón  — t         j                  j                  «       }|D ]ì  }|j                  }d|› �}	 t	        j
                  |ddi¬«      }|j                  «        |j                  «       }	t         j                  j                  ||	j                  d
d«      |	j                  dd«      dœ¬«      \  }}t        j                  «       5  |	j                  dg «      D ]%  }|d   }|d   }	 t        j                   |||¬«       Œ' 	 d d d «       Œî t        ddid¬	«      S # t        j                  j                  $ r*}
t        dd|› dt        |
«      › �id¬	«      cY d }
~
c S d }
~
ww xY w# t"        $ r5}
t        dd|› dt        |
«      › �id¬	«      cY d }
~
c cd d d «       c S d }
~
ww xY w# 1 sw Y   �Œ“xY w)Nz'https://tripoli.land/api/v1/categories/r   r    r!   r#   z!Error fetching data for category z: r$   r%   r*   Ú r)   )r*   r)   )rV   ÚdefaultsÚculturesÚtitle)r)   ra   Úcategoryz+Error processing culture data for category r,   zFData successfully fetched and saved to the database for all categoriesr.   )r   rL   rM   rV   r/   r0   r1   r2   r3   r4   r   r5   Úget_or_creater   r6   r   r7   rW   )r   r8   r   r   Úall_categoriesrb   rY   r9   r:   r;   r<   Úcategory_instanceÚcreatedÚculture_dataÚculture_slugÚculture_titles                   r   r0   z,FetchAndSaveCulturesForAllCategoriesView.gets   sä  € Ü!×)Ñ)×-Ñ-Ó/ˆà&ò 	JˆHØ"×6Ñ6ˆKØ;¸K¸=ÐIˆCðxÜ#Ÿ<™<¨°oÐGiÐ5jÔk�Ø×)Ñ)Ô+Ø—}‘}“�ô *2×)9Ñ)9×)GÑ)GØ$/Ø"&§(¡(¨6°2Ó"6ÀÇÁÈÐQSÓ@TÑUð *Hó *Ñ&Ð˜wô
 ×#Ñ#Ó%ñ JØ$(§H¡H¨Z¸Ó$<ò J�LØ#/°Ñ#7�LØ$0°Ñ$9�MðJÜ×0Ñ0°lÈ-ÐbsÖtñJ÷Jð Jð!	Jô4 ˜YÐ(pÐqÐz}Ô~Ð~øô% ×&Ñ&×7Ñ7ò xÜ# WÐ0QÐR]ÐQ^Ð^`ÔadÐefÓagÐ`hÐ.iÐ$jÐsvÔw×wûðxûô %ò JÜ+¨WÐ8cÐdoÐcpÐprÔsvÐwxÓsyÐrzÐ6{Ð,|ð  FIô   Jö  J÷Jó JûðJú÷Jñ JúsY   ¶9DÃ
 F*Ã+E)ÄF*ÄE&Ä<E!ÅE&Å!E&Å)	F'	Å2F"	ÆF'	ÆF*Æ"F'	Æ'F*Æ*F4	r?   rD   s   @r   r[   r[   n   s    ø„ Ù�kÓ"ó1ó #ð1ör   r[   c                   ó:   ‡ — e Zd Z ee«      ˆ fd„«       Zd„ Zˆ xZS )ÚFetchAndSaveFarmersViewc                 ó"   •— t        ‰| �  |i |¤ŽS r   r   r   s      €r   r   z FetchAndSaveFarmersView.dispatch–   r   r   c           
      ó<  — d}dddœ}	 t        j                  ||¬«      }|j                  «        |j                  «       }|j                  dg «      }t        dt!        |«      › �«       |rL|d
   }t        d«       |j#                  «       D ]  }t        |«       Œ d|v rt        d«       nt        d«       nt        d«       g }|D ]3  }|j                  d«      }|r|j%                  |«       Œ(t        d|«       Œ5 t        d|«       t'        j(                  «       5  |D �]7  }d|vr/t        j                  d«       t        ddid¬	«      c cd d d «       S |j+                  d«      |d<   |j                  d«      |d<   |j                  d«      |d<   |j                  d«      |d<   |j                  d«      |d<   |d   }t,        j.                  j1                  |¬«      j3                  «       rt        j5                  d|› d�«       Œèg d ¢}|D ]  }|j+                  |d «       Œ 	 t-        j6                  |«      \  }}|rt        j5                  d!|› �«       �Œ: 	 d d d «       t        |dddœ¬#«      S # t         j                  j
                  $ rC}t        j                  dt        |«      › �«       t        dt        |«      id¬	«      cY d }~S d }~wt         j                  j
                  $ rC}t        j                  dt        |«      › �«       t        dt        |«      id¬	«      cY d }~S d }~ww xY w# t8        $ rQ}t        j                  d"t        |«      › �«       t        dd"t        |«      › �id¬	«      cY d }~c cd d d «       S d }~ww xY w# 1 sw Y   �Œ8xY w)$NzNhttps://tripoli.land/api/v1/farmers?region_slug=luganskaya&page=9&per_page=200Ú 7560bf438e01c4a4e4ba8b2951589a71zMyCustomUserAgent/1.0)r   z
User-Agentr!   zError fetching data: r#   r$   r%   r   Fé   )Úensure_asciiÚindentÚfarmerszNumber of farmers received: zKeys in the first farmer data:r'   z*'id' field is present in the first farmer.z.'id' field is NOT present in the first farmer.zNo farmers data received.zFarmer without 'id' field:zFarmer IDs received from API:z.Error processing farmer data: Missing key 'id'Útripoli_farmer_idrP   Údistrict_slugr>   Úregion_slug)rs   zFarmer with tripoli_farmer_id z already exists, skipping.)=Úbelongs_company_nameÚbranchesÚcatalog_foundersÚcatalog_landsÚcatalog_org_headsÚcatalog_org_registrationsÚconnectionsÚemailsÚfinancial_statisticsÚ
managementÚobject_nameÚorgÚpersonalÚphone_1_commentÚphone_1_full_nameÚphone_1_positionÚphone_2_commentÚphone_2_full_nameÚphone_2_positionÚphone_3Úphone_3_commentÚphone_3_full_nameÚphone_3_positionÚphone_4_commentÚphone_4_full_nameÚphone_4_positionÚphone_5_commentÚphone_5_full_nameÚphone_5_positionÚphone_6Úphone_6_commentÚphone_6_full_nameÚphone_6_positionÚphone_7Úphone_7_commentÚphone_7_full_nameÚphone_7_positionÚphone_mobile_1_commentÚphone_mobile_1_full_nameÚphone_mobile_1_positionÚphone_mobile_2_commentÚphone_mobile_2_full_nameÚphone_mobile_2_positionÚphone_mobile_3_commentÚphone_mobile_3_full_nameÚphone_mobile_3_positionÚphone_mobile_4Úphone_mobile_4_commentÚphone_mobile_4_full_nameÚphone_mobile_4_positionÚphone_mobile_4_telegramÚphone_mobile_4_viberÚphone_mobile_5Úphone_mobile_5_commentÚphone_mobile_5_full_nameÚphone_mobile_5_positionÚphone_mobile_5_telegramÚphone_mobile_5_viberr)   Útransport_sizeÚuser_contactsz?Successfully processed data for farmer with tripoli_farmer_id: zError processing farmer data: )Újson_dumps_params)r/   r0   r1   r2   r3   r4   Úloggerr#   r5   r   ÚosÚopenÚdumpÚprintÚpathÚabspathÚlenÚkeysÚappendr   r6   Úpopr   rL   ÚfilterÚexistsÚinfoÚupdate_or_create_from_jsonrW   )r   r8   r   r   r9   r"   r:   r;   r<   r´   Úoutput_fileÚfÚfarmers_dataÚfirst_farmerÚkeyÚ
farmer_idsÚfarmerÚ	farmer_idÚfarmer_datars   Úunwanted_fieldsÚfieldÚ_s                          r   r0   zFetchAndSaveFarmersView.getš   s†  € Ø^ˆà?Ø1ñ
ˆð
	?Ü—|‘| C°Ô9ˆHØ×%Ñ%Ô'Ø—=‘=“?ˆDð& —x‘x 	¨2Ó.ˆäÐ,¬S°Ó->Ð,?Ð@ÔAáØ'¨™?ˆLÜÐ2Ô3Ø#×(Ñ(Ó*ò �Ü�c•
ðð �|Ñ#ÜÐBÕCäÐFÕGäÐ-Ô.àˆ
Ø"ò 	<ˆFØŸ
™
 4Ó(ˆIÙØ×!Ñ! )Õ,äÐ2°FÕ;ð	<ô 	Ð-¨zÔ:ä×ÑÓ!ñ 4	jØ+ó 3j�Ø˜{Ñ*Ü—L‘LÐ!QÔRÜ'¨Ð2bÐ(cÐloÔpÑp÷	4	jñ 4	jð 4?·?±?À4Ó3H�Ð/Ñ0ð .9¯_©_¸]Ó-K�˜MÑ*Ø/:¯©¸Ó/O�˜OÑ,Ø+6¯?©?¸;Ó+G�˜KÑ(Ø-8¯_©_¸]Ó-K�˜MÑ*ð %0Ð0CÑ$DÐ!Ü—>‘>×(Ñ(Ð;LÐ(ÓM×TÑTÔVÜ—K‘KÐ"@ÐARÐ@SÐSmÐ nÔoØò#�ð* -ò 1�EØ—O‘O E¨4Õ0ð1ðjÜ &× AÑ AÀ+Ó N‘I�F˜AÙÜŸ™Ð&eÐfwÐexÐ$yÔzùña3j÷4	jôl ˜DÀUÐVWÑ4XÔYÐYøôG ×"Ñ"×3Ñ3ò 	KÜ�L‰LÐ0´°Q³°Ð9Ô:Ü ¬#¨a«&Ð 1¸#Ô>Õ>ûô ×"Ñ"×3Ñ3ò 	?Ü�L‰LÐ0´°Q³°Ð9Ô:Ü ¬#¨a«&Ð 1¸#Ô>Õ>ûð	?ûôd !ò jÜ—L‘LÐ#AÄ#ÀaÃ&ÀÐ!JÔKÜ'¨Ð4RÔSVÐWXÓSYÐRZÐ2[Ð(\ÐehÔiÖi÷i4	jñ 4	jûðdjú÷e4	jñ 4	júsr   ‰7I3 Ä0NÅCNÈ%2L4ÉNÉ3L1Ê8KËL1Ë L1Ë.8L,Ì&L1Ì,L1Ì4	NÌ=;N	Í8NÍ9NÎ	NÎNÎNr?   rD   s   @r   rk   rk   •   s!   ø„ Ù�kÓ"ó1ó #ð1önZr   rk   )Údjango.shortcutsr   r2   r/   Údjango.httpr   Údjango.viewsr   Údjango.views.decorators.csrfr   Údjango.utils.decoratorsr   Úmodelsr	   r
   r   r   r   Ú	django.dbr   ÚloggingÚ	getLoggerr@   r³   r   rF   rS   r[   rk   © r   r   ú<module>rØ      s–   ðÝ #Û Û Ý $Ý Ý 4Ý 4ß ?Õ ?Ý !Û à	ˆ×	Ñ	˜8Ó	$€ôl˜dô lô6#l ô #lôLl ô lô<"¨tô "ðJ 
ˆ×	Ñ	˜8Ó	$€ôsZ˜dõ sZr   