U
    #xg                    @   s  d dl mZ d dlZd dlmZ d dlmZ d dlZd dlZd dlZd dl	Z	d dl
mZmZ d dlmZmZmZmZmZ d dlmZ d dlmZ d d	lmZ d
ddZdZdZd*ddZdd Zdd Zdd Zdd Z dd Z!d+ddZ"d,d d!Z#d"d# Z$d$d% Z%d&d' Z&d(d) Z'dS )-    )service_accountN)date)relativedelta)parse_order_dateget_phone_with_code)send_whatsappgenerate_jeevnai_whatsapp_imagecapture_full_page_screenshot
png_to_jpgstop_server)storage)upload_file_to_storage)LoggerZlinxagZpayagri)z	linxag.ngzsat.payagri1.comservicekey.jsonzfarmbase-b2f7ec                 C   s  ddl }ddl}ddlm} ddl}ddlm} ddlm} ddlm} ddlm} ddl}ddl	m
}m}m}m}m}m} dd	lm} dd
lm}  z0|d}!z||!ddi W n   td Y nX z||!ddid}"W n   |d}"Y nX |dd}#|dd}$||  d|" }%|%dk	rJd|%krD|%d nd}&nt|	}'i }%|'p`d}&|&dk}(|d|& d })|)dd}*|)d}+|)dd},|dk}-|}.tjt}!t t!|!}/d}0|"d}1|#dkr|%dd p|)dd }#td!|$|#|%|) |#r.|$p,|%d"dp,|)d"d}$td#|$ |$|1k}2t#$ }3|3%d$}4|4dd% }5|4d%d& }6|4d&d }7|5d' |6 d' |7 d( }8|dd% }9|d%d& }:|d&d };|9d' |: d' |; d( }<t&|;};t&|:}:td)|8|< |-rd*| ||f }=d+| ||f }>d,| ||f }?d-| ||f }@d.| ||f }Ad/| ||f }Bd0| ||f }Cd1| ||f }Dd2| ||f }Ed3| ||f }Fd4| ||f }Gd5| ||f }Hd6| ||f }Id7| ||f }Jnd8| |f }=d9| |f }>d:| |f }?d;| |f }@d<| |f }Ad=| |f }Bd>| |f }Cd?| |f }Fd@| |f }GdA| |f }HdB| |f }DdC| |f }EdD| |f }IdE| |f }JdF| |f }KdG| |f }LdH| |f }MdI| |f }NdJ| |f }OdK| |f }PdL| |f }QdM| |f }RdN| |f }SdO| |f }TdP| |f }UdQ| |f }VdR| |f }W|
d |
dS |
dT |
dU ||dV}XtdW||X|Gg |dX|  dY| dZ }Yt'| |d[d\|/}Z|Ydkpb|Z }[|[st(| |d[d\|/|G}\|\dk}[|[r|||X|G}Y|dX|  dY| dZ)|Y t*| |d[|Gd\ |j+,|>}]z|]r||K|>nd}^W n   d}^Y nX |^dkr$| |@|A| dY | d] | || n| |>|?| dY | d] | || |d^k oR|d^k }_|j+,|@}`|`rv||@}a||A}b|]r||>}c||Cd}d||?}e||Bd}f||R}g||Vd}h|^r|`r|bndn|]r|_s|en|fnd}i|^r|`r|andn|]r|_s|cn|dnd}jtd_|`|i|j |]r,|_s(|gn|hnd}k|d`-da-| -|-db }lt.|ldc}mt.|ldd}nt.|lde}ot.|ldf}pt.|ldg}qt.|ldh}rt.|ldi}sdj|  dk }tt/|tr|t}un(dj|	 dl }tt/|tr|t}un|)dmdn}ut0|}v|vdd& }vt0|}w|wdd& }w|}x|d`-da-| -|-do-|x }yz|ydp }zW n   d}zY nX dq}{|zdkrtdr ds}zds}|ds}}ds}~ds}ds}ds}ds}nt1|zdt }zt0|z}z|zddu }z|ydv }|t1||dt }|t0||}|||ddu }||ydw }}|ydx }~|ydy }|ydz }z|yd{ }W n   d|}Y nX z|yd} }W n   d|}Y nX |d`-da-| -|-do }t2t3|1D ]}|1| }|4d~d}d}|.|d}g }d}td|| |5| z|d-| }W n    |d-d }Y nX |D ]}|5| 	qtd|du  |5d' |6 d' |7 |d< t0|9d' t0|: d' t0|; |d< |K|d< |=|d< |P|d< |S|d< |O|d< |C|d< |L|d< |T|d< |?|d< |B|d< |I|d< |J|d< |M|d< |U|d< |N|d< |W|d< | dk
rd}||=|F|| d| }t'| |d[||/s
t*| |d[|F| |F|d< |-|d< |^|d< |_|d< |Ydkrl|Yd|Ydf|d< |Yd|Ydf|d< |G|d< |Q|d< |R|d< |V|d< |`r|@|d< |A|d< ||b|d||d< ||a|d ||d< |]r|>|d< ||e|d||d< ||f|d||d< ||c|d ||d< ||d|d ||d< |(rL|j+,|D}|r<|D|d< |E|d< d|d< |H|d< |u|d< |v|d< |w|d< ||d< |~|d< ||d< |z|d< |||d< ||d< ||d< |}|d< |dkrtd ng }g }g }g }g }g }g }g }|6 D ] \}}|}|| }|5| q|7  |D ]<}|}|| }z|5|d}  W n   |5d Y nX z|5|dw  W n   |5ds Y nX z|dv dt }W n   ds}Y nX z|dp dt }W n   ds}Y nX |5| |5| z|5|dx  W n   |5ds Y nX z|5|d{  W n   |5ds Y nX z|5|dz  W n   |5ds Y nX qt3|dSkrzHdpdvd}dwdxdzg}||||||g}|| |||| | dY | d |d< W n   dq}{Y nX t3|mdSkrtdă || dc|m| || dd|n| || dh|r| || df|p| || de|o| || dg|q| || di|s| | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< | dY | d |d< |||}g }g }g }g }g }g }g }g }|6 D ]\}}|5| qz|7  |dSd }|D ]}|| }t8j89t&|}|5t0|dd  |5|d  |5t0t&t1|d  z0t0|d }|5| t0|d }|5| W n    |5ds |5ds Y nX z(|5|d  t0|d }|5| W n    |5ds |5ds Y nX |d |dt0t3| d < |d |dt0t3| d < |d |dt0t3| d < |d |dt0t3| d < |d |dt0t3| d < |d |dt0t3| d < |d |dt0t3| d < q|6 D ]\}}t0|||< qp|:|||}|4d~d}|4dd}| dY | dY |	 |-r|d nd d | d t0| d t;| d }| d | d }dt0|  dY t0| dY t0| d }|/<|0}|=|}|>| t?|| dddddddd}|j@|||d zd|-r|d nd|dkrdn|f }t*| ||||d}td|#|2 |#r<|2s|dks||$kr<td |^|`|]|`r |b|agng |]r|e|cgng  z6dt3|idkr.dndSt3|jdkrBdndSf }W nZ   d}ttAB  tC jDjEd|^|`|]|i|j|@|>tFG dT jHtAB d	| d Y nX |2r|n|$pd}| dkrd}||kr|d-| }|||i|j||}d|-r
|d nd|f }t'| |d[||/}|s||krl||=|F|| d| }t'| |d[||/slt*| |d[|F| d| ||-r|d nd|f }||F|G|Y||*d t*| |d[||}ntI| |d[||/}|}|+rtJ||+}ntK|}t|||| |-rZ|p&|d`-da-| -|-d	-| }d
|kr>|d
 n|d d }|d }n\|ddp|ddp|ddp|%dd}|dd~p|%dd~}| dkr|d }|dkr|dd}|dkr|d|dd}tL|}|d}tM|}|dd}|Đdkr|tNt&|Đd d }|| jO}t8j8P }|| jO}|| }t&|du }ʐdQ||dSkr|dn
|d||dSkr|dn
|d}|)dddi}|̠||̠dd}|||.|||,|g}|Đdkr&|ΠRd&|ˡ tS|||| |||	| W n   ttAB  Y nX 	qd|^|jdksvt3|jdkr|d n|j|idkst3|idkrd n|i|]rdnt3|kdkrd n|kd!W S    ttAB  Y nX td" d#S ($  z;
    :param whitelabel: the domain name of the company
    r   N)create_linegraph)credentials)db)create_weather_line_graph)get_weather_forecast)getRedZonescreateFieldDirImggetInstructionsByZonesisCloudyImggetSmsFullInstructionsByZonescreateDirOnMapImg)getFieldMapImg)create_hybrid_imager   databaseURLz,https://farmbase-b2f7e-31c0c.firebaseio.com/zfire runningz,https://farmbase-b2f7e-60c5a.firebaseio.com/fireApp2ZisWhatsappEnabledsmsLangz
/MyProfileZCompanyCode	FarmonautZGodrejzOrganisationData/z/ReportDataaddLogoTdynamicLinkDomainexpertNumber
6366026267farmbase-b2f7e.appspot.com,Fz	langg1s: ZdefaultSmsLangz
fSmsLang: z%Y%m%d      -z  (in yyyy-mm-dd)report_datez%s/%s/%s_TCI.pngz%s/%s/%s_NDVI.pngz%s/%s/%s_NDWI.pngz%s/%s/%s_RVI.pngz%s/%s/%s_RSM.pngz%s/%s/%s_NDWI_CMAP2.pngz%s/%s/%s_NDVI_CMAP2.pngz%s/%s/%s_RECL.pngz%s/%s/%s_RECL_CMAP2.pngz%s/%s/%s_dirImg.pngz%s/%s/%s_mapImg.jpgz%s/%s/%s_bdyImg.jpgz%s/%s/%s_NDRE.pngz%s/%s/%s_NDRE_CMAP2.pngz%s/%s/ETCI.pngz%s/%s/ndvi.pngz%s/%s/ndwi.pngz%s/%s/rvi.pngz%s/%s/rsm.pngz%s/%s/ndwi_cmap2.pngz%s/%s/ndvi_cmap2.pngz%s/%s/dirImg.pngz%s/%s/mapImg.jpgz%s/%s/bdyImg.jpgz%s/%s/recl.pngz%s/%s/recl_cmap2.pngz%s/%s/ndre.pngz%s/%s/ndre_cmap2.pngz%s/%s/TCI.pngz%s/%s/evi.pngz%s/%s/savi.pngz%s/%s/ndmi.pngz%s/%s/hybrid.pngz%s/%s/hybrid_blind.pngz%s/%s/dem.pngz%s/%s/soc.pngz%s/%s/evapo.pngz%s/%s/evi_cmap2.pngz%s/%s/savi_cmap2.pngz%s/%s/soc_cmap2.pngz%s/%s/ndmi_cmap2.png         )ZminLatZminLngZmaxLatZmaxLngZ	centerLatZ	centerLngZpp1zPaidMonitoredFields/PMF//z/MapDimensionsdefaultz
mapImg.jpgz/hybrid.pngg?z"isRVTPresent, irriZones, cropZonesPaidMonitoredFieldsPMFHealthndvievindwindrendmisavisoczhttps://farmonaut.com/Images/z.jpegz.jpgZlogoUrlz1https://farmonaut.com/Images/Farmonaut_Logo_1.jpgWeathermin_tempz/https://farmonaut.com/Images/data_not_found.jpgzWeather data not availableznot availablei     max_temphumiditypressurestation
wind_speedwind_degzNot Availablecloud_cover  )ZaddressValueH6ZfieldAreaValuezlooping over langsZReportStrings2022enzlangStrings[5]ZgenerationDateValueH6ZvisitDateValueH6Z	rgbTCIImgZ
rgbETCIImgZcolorBlindImgZevapoImgZdecisionTreeBasicImgZndviSmallHeightImgZeviGoodHeightImgZeviSmallHeightImgZndwiGoodHeightImgZndwiSmallHeightImgZndreGoodHeightImgZndreSmallHeightImgZsaviGoodHeightImgZsaviSmallHeightImgZndmiGoodHeightImgZndmiSmallHeightImgM53J9SImW9My4vghlCaaWLYxsc22hizdir_img_%s.pngZdecisionTreeFieldDirImg	isPolygonisCloudyisSmallPlantwidthheightZ
mapImgSize
horiPadPer	verPadPerZfieldImgPaddingsZmapImgZdemGoodHeightImgZsocGoodHeightImgZsocSmallHeightImgZrviImgZsoilMoistImgZdecisionTreeCloudyIrriPZdecisionTreeCloudyCropPZndviGoodHeightImgZdecisionTreeLaterIrriPZdecisionTreeEarlyIrriPZdecisionTreeLaterCropPZdecisionTreeEarlyCropPZreclGoodHeightImgZreclSmallHeightImgZ	isOilPalmZfieldBdyImgZcompanyLogoImgZlatValueZ	longValueZweatherValueStnZweatherValuePressureZweatherValueCloudZweatherValueTempMinZweatherValueTempMaxZweatherValueWindZweatherValueWindDirZweatherValueHumidityzweather data not available yetznot availabez/weather_linegraph.pngZweatherGraphImgzcame to linegraphz/evi_linegraph.pngZeviGraphImgz/ndvi_linegraph.pngZndviGraphImgz/ndwi_linegraph.pngZndwiGraphImgz/ndmi_linegraph.pngZndmiGraphImgz/ndre_linegraph.pngZndreGraphImgz/savi_linegraph.pngZsaviGraphImgz/soc_linegraph.pngZsocGraphImgz/evi_piechart.pngZeviIndexImgz/ndvi_piechart.pngZndviIndexImgz/ndwi_piechart.pngZndwiIndexImgz/ndmi_piechart.pngZndmiIndexImgz/ndre_piechart.pngZndreIndexImgz/savi_piechart.pngZsaviIndexImgz/soc_piechart.pngZsocIndexImg
   summaryZ
cloudcoverZtemplowZtemphighZ	preciprobZprecimaxZweatherZMaxPrecipitationTdZ	MaxTempTdZ	MinTempTdZ	SummaryTdZDateTdZRainTdZCloudCoverTd__report_z.pdfzreport.htmlPaidMonitoredFields/z/report.htmlZ192mmZ136mmZ6mmZ8mm)zenable-local-file-accesszpage-heightz
page-widthz
margin-topzmargin-bottomzmargin-leftzmargin-right)optionsz%sreport%s.pdfi(#  zwhatsapp varszwhatsapp startedz%s%s11zgen_report_new zone error)	rJ   isRVIPresentisNDVIPresent	irriZones	cropZones	rvi_image
ndvi_imageZline_noerror)userz%sdir_on_map_%s.pngz%s/%s/%sdirMapImg%s.png)r!   ZPolygonsZPhoneNumberZFarmerInfoDataZwhatsAppNumberNamePhoneFarmerPhoneNumberZOrgDataZOrgRyotNameFarmerZOrgWhatsappNoZOrgMobileNo	OrderDatePaymentType   )daysz{} {} {} {}dayrh   reportZreportsZsmsCompanyNameempty)rJ   cropRedZonesirrigationRedZonessocRedZoneszend of gen_report_newyes)TpdfkitZreport_html_fillerr   firebase_adminr   r   r   r   os.pathZcreate_instructionsr   r   r   r   r   r   ZgetMapByCoordinatesr   Zgen_radar_hybridr   Certificateinitialize_appprintget_appget	referencecompanyDomainNameToCodeNamer   Credentialsfrom_service_account_fileSERVICE_KEY_PATHr   ClientPROJECT_NAMEsplitr   todaystrftimeintcheckIfStorageFilePresentdownloadStorageFileToPathsetr   pathexistschild	try_indexis_url_imagestrfloatrangelenreplaceappenditemssortdatetimefromtimestampZpopulateDataremoveSlash
get_bucketblobupload_from_stringsaveToTmpHtml	from_file	traceback
format_excr   Zmloggerr^   sysexc_info	tb_linenogetStorageFileUrlcreateShortDynamicLinkcreateShortLinkr   r   r   rh   nowformatinsertr   )uidZfield_addressZ
center_latZcenter_long	imagedatefieldid
field_arealangfailed
whitelabelrangeLatLngpointsZ	polygonID
ndviAvgVal
ndwiAvgValfieldOrPolyDatarp   fillerr   rq   r   r   r   r   osr   r   r   r   r   r   r   r   credr   ZwhatsappEnabledZfSmsLangZuserDataZcompanyCodeZwhitelabelCodeNameZisGodrejZorgReportDatar!   r"   r#   rI   temp_field_addressstorage_clientbucket_name	all_langsZisSmsLangInReportLangsr   Zdate_dyearmonthri   r*   Zsensed_yearZsensed_month
sensed_dayZsensed_imagedateZ
etci_imager]   Z
ndwi_imager\   Z	rsm_imageZndwi_image_cmap2Zndvi_image_cmap2Z
recl_imageZrecl_image_cmap2Zdir_imgZmap_imgZbdy_imgZ
ndre_imageZndre_image_cmap2Z	tci_imageZ	evi_imageZ
savi_imageZ
ndmi_imageZhybrid_imageZhybrid_blind_imageZ	dem_imageZ	soc_imageZevapo_imageZevi_image_cmap2Zsavi_image_cmap2Zsoc_image_cmap2Zndmi_image_cmap2ZfieldLatLngsZmapImgDimensZmapImgPresentInStorageZcreateMapImgoutPathrY   rJ   rK   rX   ZrviRedZonesZrsmRedZonesZndviRedZonesZndvi2RedZonesZndwiRedZonesZndwi2RedZonesrn   Zsoc2RedZonesrZ   r[   Z	soilZoneshealthr3   r4   r5   r6   r7   r8   r9   Ztmp_header_img_urlZheader_img_urlZf_latZf_longZcur_dateZcur_weather_datar;   Zpast_weather_urlr=   r>   r?   r@   rA   rB   rC   weather_dataZ	langIndexlang_numZallReportValuesZall_stringsrow_numZreportStringsiZdirImgStoragePathZisRECLPresentZcloud_arrayZhumidity_arrayZmax_temp_arrayZmin_temp_arrayZpressure_arrayZwind_deg_arrayZwind_speed_arrayZdates_arraykeyvalZweather_date	date_dataZ
t_max_tempZ
t_min_tempZ
line_typesZweather_arrayZall_weather_dataZall_daysZ	min_tempsZ	max_tempsZ
rain_probsZ	max_prepsZcloud_coversZ
final_daysZweather_infosZsingle_w_dataZw_dateZtemp_min_tempZtemp_max_tempZ	temp_prepvalueZhtml_strZpdf_nameZhtmlfilenamedestination_blob_namebucketr   rV   ZstorageReportNameZ	reportUrlZtemplateTyper   smsInstructionsZstorageDirMapImgNameZdoesDirMapImgExistZ
dirMapPathZ	dirMapUrldirMapShortUrlreportShortUrlZpolygonDataphoneNouserNameZorgDataZorderDateStrZ	orderDateZorderMonthsZ
expiryDateZ	totalDaysr   Z
noDaysDoneZ
noDaysLeftZreportsLeftZorderMsgStrZorgCompanyDataorgName	smsParams r   //home/ankuromar296_gmail_com/gen_report_new2.pygen_report_new   s    
 &



	

 




         

	


		









 
	




	

        
                  





	    





#	
	



     



    
               	 
 



 





  
	
  

r   c                 C   s   |  ddS )Nr.   rE   )r   )r   r   r   r   r   g  s    r   c           	      C   sL   d}dt |  d t | d t | d | }||}||}| S )Nr%   rU   r.   )r   r   r   r   )	r   fieldIdimgDatefileNamer   r   r   r   r   r   r   r   r   k  s(    


r   c                 C   s   d}dt |  d t | d t | d | }||}||}tjd}	z |jdtjddd|	d	}
|
W S    Y d S X d S )
Nr%   rU   r.   r   v4'  minutesGETversion
expirationmethodr   )	r   r   r   r   rz   r{   generate_signed_urlr   	timedelta)r   r   r   r   r   r   r   r   r   r   urlr   r   r   r   |  s<    



r   c           	   
   C   s~   d}| }| |}||}tjd}z |jdtjddd|d}|W S  tk
rx } zt	| W Y d S d }~X Y nX d S )Nr%   r   r   r   r   r   r   )
r   r   r   rz   r{   r   r   r   	Exceptionru   )	ZfilePathr   r   r   r   r   r   r   er   r   r   getStorageFileUrlGeneral  s     


r   c                 C   st   d}dt |  d t | d t | d | }||}||}	tjd}
z|	| |W S    Y dS X dS )zMDownloads field file and save to outPath

    RETURNS - outPath if successfulr%   rU   r.   r   N)r   r   r   r   rz   r{   download_to_filename)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     s2    



r   https://farmonaut.page.linkc                 C   sb   d}|| dddid}t jdd|it|d}|jd	krLt|jd
 S t|j|j d S d S )NZ'AIzaSyCdVSM4xjufjH7v01en4fh6TdomsdurmC8)ZdomainUriPrefixlinkoptionSHORT)ZdynamicLinkInfosuffixz9https://firebasedynamiclinks.googleapis.com/v1/shortLinksr   )paramsdata   Z	shortLink)requestspostjsondumpsstatus_codeloadstextru   )longLinkdomainPrefixapiKeyinforesponser   r   r   r     s    
r   https://farmonaut.comrE   c                 C   sT   d}| |d}t jdd| ddt|d}|jdkrLt|jd	 d
 S |S d S )NzeyJhbGciOiJIUzI1NiIsInR5cGUiOiJKV1QifQ.eyJpYXQiOjE3MTkzMDUzMTgsImlkZW50aWZpZXIiOiJmYXJtb25hdXRfYWRtaW4ifQ.VdTMA95b0zzePCnnlMsxl7TiOYhW9PEQ1EszL7gRQnY)r   domainzFhttps://us-central1-farmbase-b2f7e.cloudfunctions.net/create_short_urlzBearer zapplication/json)AuthorizationzContent-Type)headersr   r   r   Z	short_url)r   r   r   r   r   r   r   )r   r   Z
defaultUrlr   r   r   r   r   r   r     s    

r   c              	   C   s(   t |ddd}||  W 5 Q R X d S )Nwutf8)encoding)openwrite)ZhtmlStrZhtmlFileNamefr   r   r   r     s    r   c                 C   s&   i }z| | }W n   i }Y nX |S )Nr   )r   index	new_indexr   r   r   r     s    
r   c                 C   s$   d}t | }|jd |kr dS dS )zG
    Returns True if the image pointed to by image_url is an image
    )z	image/pngz
image/jpegz	image/jpgzcontent-typeTF)r   headr   )Z	image_urlZimage_formatsrr   r   r   r     s
    
r   c               4   C   s  t d t  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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/d0d1d2d3dddd%d4d5d5d5d6d7d8d9d6d:d;d<d6d=d>d>d6d?d@dAd6dBdCd5d6d:dDd5d6dEdFdGd6dHdHdId6dJdJdJd6dKdLd5d6d9d9d9d6dMdMdMd6d?dCd5d6d5d5d5d6dNdOdMdMdMdMdMdMdMdMdMg
dMdMdMdMdMdMdMdMdPdQg
dMdRdSdMdMdMdMdMdMdMg
dMdMdMdTdUdMdMdMdMdMg
dVdWdMdMdMdMdMdMdMdMg
dXdYdZdMdMdMdMdMdMdMg
dMdRdSdMdMdMdMdMdMdMg
dXd[d\d]dMdMdMdMdMdMg
dMdMd^dMd_dMd`dadbdcg
dMdMdddMdedMdfdgdhdig
dMdjdkdldmdMdMdMdMdMg
dMdMdMdMdMdMdMdMdMdOg
dndodpdMdMdMdMdMdMdMg
dOdMdMdMdMdMdMdMdMdMg
dqdOdMdMdMdMdMdMdMdMdMg
dMdMdMdMdMdMdrdsdtdug
dMdMdMdMdvdwdxdrdMdMg
dMdMdMdydzdMd{dMdMdMg
d|d}d~dMdMdMdMdMdMdMg
dMddddMdMdMdMdMdMg
dMdvdwdxdrdMdMdMdMdMg
dMdMdddddMdMdMdMg
dMdMd^dMd_dMd`dadbdcg
dMdMdddMdedMdfdgdhdig
dMdMdddddrdMdMdMg
dMdMdMdMdMdMdMdMdMdOg
ddddd8dMdMdMdMdMg
dOdMdMdMdMdMdMdMdMdMg
dqdOdMdMdMdMdMdMdMdMdMg
dMdMdMdMdMdMdMdMdMdOg
dMdMdMdOdMdMdMdMdMdMg
dMdMdMdMdOdMdMdMdMdMg
dMdMdMdMdddMdMdMdMg
dOdMdMdMdMdMdMdMdMdMg
dOdMdMdMdMdMdMdMdMdMg
dMdMdMdMdddMdMdMdMg
dMdMddMddMddddg
dMdMddMddMdd~ddg
dOdMdMdMdMdMdMdMdMdMg
dMdMdMdMdMdMdMdMdMdOg
dOdMdMdMdMdMdMdMdMdMg
dOdMdMdMdMdMdMdMdMdMg
dqd6dddddddddd4dd)dd4d4d4ddddddgddd4d4d6dddddddddddddddddddddddddddddddddddddddddddddddddҜddԜ)} tdd.dddd/d-ddddd%ddg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 dd!d"dd#ddd$d%dd&dd| d܍}t d| d S )Nstartg Y%?g0"OcY@g@Xb5?g0޺McY@)ZLatitudeZ	Longitudegł$?g0dgcY@g@"?g0ވpcY@gqw ?g0<qcY@gӒ?g0ޖqcY@gnx?gwzYcY@g'g?gwNIcY@gb?1W+$?gw-cY@gF:7?g0sXcY@g~F 4?g0p[cY@g.Qd0?g0bcY@gm-?g0HecY@g9}x(?g0,ccY@gv(?g0\cY@g"'?g0]cY@g6|R'?gS$?g0ޮ,cY@)ZP_1ZP_10ZP_11ZP_12ZP_13ZP_14ZP_15ZP_16ZP_2ZP_3ZP_4ZP_5ZP_6ZP_7ZP_8ZP_9aZ	Indonesia107zeddie@inovasi-iot.technoZhidayatzYJalan Tanpa Nama, Bencah Lesung, Kec. Tenayan Raya, Kota Pekanbaru, Riau 28285, Indonesiaiޭ demoZ1739255114968g]?g]?g 0   ^?g     ^?ro   10)Z202502062025021120250216Z98Z88Z100Z23Z61Z40Z41Z50rW   Z19Z562229Z31Z27Z46Z58Z81Z83Z8932Z450)avibsir4   lair7   r6   r3   r5   rsmrvir8   sir9   varivssiZ110046Z18916Z91130Z82496Z27550Z96688Z13358Z100445Z960144Z86187Z23815Z37392Z66019Z6591Z4218Z10853Z21223Z25595Z10480Z37678Z2351Z3581Z12676Z12940Z19861Z58637Z6415Z78805Z24562Z264Z101258Z8590Z198)r  r  r4   r  r7   r6   r3   r5   r  r  r8   r  r  r  132Z27330Z76586Z5998Z1538Z90691Z17686Z4723Z100665Z4658Z15423Z85001Z9623Z15027Z92251Z2768Z4899Z32339Z71797Z1011Z2329Z53276Z50376Z3933Z11095Z17092Z52200Z29571Z46312Z63734Z22233Z87813Z4372Z8656Z20454Z22541Z11336Z42687Z3120Z6898Z10260Z19180Z60966idr  gtO~@g?guHgf}@   )rM   rN   rO   rL   Zzoomz11-February-2025r-   8)Z20250203Z20250214Z20250215rk   r'   r<   r(   T)rl   rm   rJ   Z
1739232000ZtTiPWW2nikbpxKcvnEHDLPHGo1d2zMediaAssets2/user_dp.png<   T   gs@g     xr@i  Z	Pekanbaru6   g333333@)rC   r>   r=   r;   r?   r@   rB   rA   O   a   gr@gyr@i  g@S   b   i(  i  i  g      @H   `   g     r@gfffff~r@i5  g?E   c   gfffffs@g33333sr@   g?)r  r  Z20250217Z20250218Z20250221zinovasi.web.app))	CenterLatCenterLatLarge
CenterLongCenterLongLargeCoordinatesZCountryCropCodeEmailExpiringZ
FarmerNamerb   FieldAddress	FieldAreaFieldDescriptionFieldIDFieldLatLenFieldLatLenLargeFieldLongLenFieldLongLenLargeFieldMaxLatFieldMaxLongFieldMinLatFieldMinLongGenTifr2   ZIndexBreakdownLanguage	LatestDayZMapDimensionsrd   Paidre   ra   PlantDistanceSARDays
SensedDaysZ
SowingDateUIDZURIr:   
Whitelabelz0.5045593579570529z101.55170509050396rF   r   	farmonautrP   :   )r   r   r   r   r   r   resz!https://picsum.photos/200/300.jpgzIhttps://farmonaut.com/wp-content/uploads/2020/01/Farmonaut_Logo_Black.pngzhttps://precisiongrow.page.link)r   	media_urlZPayAgrir    z%Payagri primary processing Black gramzuirrigation inspection is required in north, north east, center directions of your field and crop is in good conditionz"https://farmonaut.com/app_redirectr$   z51 days 10 reportsz+919980971974done)ru   r   r   r   rz   r{   r|   r   r}   r~   r   r   r   r   r   )	field_objrK  r   r   r   rL  r   r   r   r   r   r#   Z	expiryTxtr   r   r   r   r   r   r   test  s   














'H 

	4    $(
                         
             
rO  )Nr   r   N)r   )r   rE   )(google.oauth2r   r   r   dateutil.relativedeltar   r   r   r   r   utilsr   r   Zsend_whatsapp2024r   r   r	   r
   r   google.cloudr   Zupload_filer   Zlogger.main_logger2r   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   r   rO  r   r   r   r   <module>   sN   
    
        T

	