
    8h                         d dl Z d dlZd dlmZ d dlmZ d dlZd dl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)    N)	Nominatim)geodesicc                 6    d}t        j                  ||       ryy)Nz^09\d*TF)rematch)mobile_numberpatterns     /var/www/api/v1/app_func.pycheck_mobiler   	   s    G	xx'    c                 :    |}t        |       dkD  r
|dd  }| |z   }|S )Nr      )len)country_coder   mobile_fulls      r
   
set_mobiler      s0    K
<1%ab)"]2r   c                     i }| j                   j                  D ].  }t        t        | |j                              ||j                  <   0 |S N)	__table__columnsstrgetattrname)data_rowdcolumns      r
   
class2jsonr      s?    
A$$,,WXv{{;<&++ -Hr   c                 b    | j                         D ci c]  \  }}d|vs|| }}}|S c c}}w )Nid)items)inp_jsonkvfiltered_datas       r
   deleteIDr%   !   s;    &.nn&6R&6da4PQ:QQT&6MR Ss   ++c                     | }g }g }g d}|D ]:  }||v s|j                  |      }|j                  |       |j                  |       < t        t        ||            }|S )N)addresscityemail
first_name	last_namelocation)getappenddictzip)db_jsondatakeysvaluesoutput_keysitemvaluer   s           r
   customer_output_datar8   '   se    D
DFUK;HHTNEKKMM% 	  	SfAHr   c                     	 t        j                  t        j                  t        j                        }t        dt        |      z         }|j                  | d|       y# t        $ r
}Y d }~yd }~ww xY w)NzNova lozinka:zGetWork - Nova lozinkatosubjectcontentsFT)yagmailSMTPapp_settings
EMAIL_FROM
EMAIL_CODEr   send	Exception)to_emailr2   yagtextes        r
   send_mail_passwordrI   6   sj    	ll<22L4K4KL?SY./* 	 	
   s   AA   	A3.A3c                 2   	 t        j                  t        j                  t        j                        }|d   }|d   }|d   }|d   }|d   }|d   }|dk(  rd}d	| d
| d| d| d| d| d}	|j                  | d|	       y# t        $ r
}
Y d }
~
yd }
~
ww xY w)N	name_fromname_toservicedatequantitydescription -u   Poštovani zD,

        Zelimo Vam javiti da je potvrdjena rezervacija za uslugu z na dan z u trajanju od z) sati.

        Molimo Vas kontaktirajte uk    kako bi dogovorili točan termin za izvršenje usluge.
        
        Dodatna poruka za uslugu:
        u8   

        Srdačan pozdrav,
        GetWork tim
        zGetWork - Rezervacija usluger:   FT)r>   r?   r@   rA   rB   rC   rD   )rE   r2   rF   rK   rL   rM   rN   rO   rP   rG   rH   s              r
   send_mail_paymentrS   C   s    ll<22L4K4KL%	y/y/F|
#=)Kyk *BBI(SWRXXghpgq r"") +	 
 	 	0 	 	
   s   B B 	BBc                 t   t        dd      }|j                  |      }d}|rW|j                  |j                  |j                  fdd      }|j
                  j                  di       }|j                  d      }|  d	| d
|z   }|j                  |      }i }|r|j                  |d<   |j                  |d<   |S )Ngetwork_app_geoloc
   )
user_agenttimeoutrQ   en)languagezoomr'   countryz,  LatLon)r   geocodereverselatitude	longituderawr-   )	r'   r(   
geolocatorr,   r\   location_detailsaddress_rawfull_addressress	            r
   set_locationrj   g   s    &:BGJ !!$'HG%--x/@/@(BTBT.U`dkm-n&**..y"=//),Yba(72L!!,/H
C&&E
''E
Jr   c                 z   | j                  dd      } |j                  dd      }t        j                  |       } t        | d         | d<   t        | d         | d<   | d   | d   f}t        j                  |      }t        |d         |d<   t        |d         |d<   |d   |d   f}t	        ||      j
                  S )N'"r^   rb   r_   rc   )replacejsonloadsfloatr   km)	location1	location2point1point2s       r
   distancerw   }   s    !!#s+I!!#s+I

9%I!)E"23Ij"9U#34Ikj!)K"89F

9%I!)E"23Ij"9U#34Ikj!)K"89FFF#&&&r   c                 ^    t        |       }t        | |z
  dz        }| }|dkD  r| d|d}|S )N<   r   :02d)int)time_decimalhourmintime_strs       r
   time_convertr      sE    |D
|d"b(
)CH
QwV1SI&Or   c                 :    t         j                  t        |          S r   )r@   service_typer|   )
service_ids    r
   service_convertr      s    $$S_55r   c                 6    | dt         j                  d   z   }|S )Nz.2fHR)r@   currency)price_decimal	price_strs     r
   price_convertr      s"     %)>)>t)DDIr   )r   r>   geopy.geocodersr   geopy.distancer   ro   r@   r   r   r   r%   r8   rI   rS   rj   rw   r   r   r    r   r
   <module>r      sT    	  % #   H,'6r   