
    gy                       d dl mZ d dlmZ d dlmZ d dl d dlZd dlmZ d dl	 d dl
mZ ddl d dl d dl d dlZd d	lmZmZmZ d d
lmZ d dlZd dlm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" 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 Z+d Z, G d de      Z- G d de      Z. G d de      Z/ G d de      Z0 G d d e      Z1 G d! d"e      Z2 G d# d$e      Z3 G d% d&e      Z4 G d' d(e      Z5 G d) d*e      Z6 G d+ d,e      Z7 G d- d.e      Z8 G d/ d0e      Z9 G d1 d2e      Z: G d3 d4e      Z; G d5 d6e      Z< G d7 d8e      Z= G d9 d:e      Z> G d; d<e      Z? G d= d>e      Z@ G d? d@e      ZA G dA dBe      ZB G dC dDe      ZC G dE dFe      ZD G dG dHe      ZE G dI dJe      ZF G dK dLe      ZG G dM dNe      ZH G dO dPe      ZI G dQ dRe      ZJ G dS dTe      ZK G dU dVe      ZL G dW dXe      ZM G dY dZe      ZN G d[ d\e      ZO G d] d^e      ZP G d_ d`e      ZQ G da dbe      ZR G dc dde      ZS G de dfe      ZT G dg dhe      ZU G di dje      ZV G dk dle      ZW G dm dne      ZX G do dpe      ZY G dq dre      ZZ G ds dte      Z[ G du dve      Z\ G dw dxe      Z] G dy dze      Z^ G d{ d|e      Z_ G d} d~e      Z` G d de      Za G d de      Zb G d de      Zc G d de      Zd G d de      Ze G d de      Zf G d de      Zg G d de      Zh G d de      Zi G d de      Zj G d de      Zk G d de      Zl G d de      Zm G d de      Zn G d de      Zo G d de      Zpy)    )APIView)Responsestatus)*N)datetime)settings   )	PaginatorPageNotAnInteger	EmptyPage)Q)date)	timesince)mail)render_to_string)BytesIO)pisa)HttpResponse)get_template)Context)timezonec           	         g }i }d}d}d}t         j                  j                  |       j                         }|sd|d<   d|d<   t	        |      S t
        j                  j                  |d      }|D ]  }	|j                  rz|	j                  j                  |j                  j                  k(  rLt        d	       |j                  d
k(  rt        |j                        dz  }
t        |	j                        t        |
      z  }t        |	j                        t        |      z
  }|j                  t        |	j                        t        |      |j                  t        |      |j                  d       nt        |	j                        t        |j                        z
  }|j                  }|j                  t        |	j                        t        |      |j                  t        |      |j                  d       |j                  s|	j                  j                   j                  |j"                  j                  k(  s|j                  d
k(  rt        |j                        dz  }
|t        |	j                        z  }|t        |
      z  }|t        |      z
  }t        |      t        |      |j                  t        |      |j                  dg}g|t        |	j                        z  }|t        |j                        z
  }|j                  }t        |      t        |      |j                  t        |      |j                  dg} ||d<   d|d<   d|d<   |S )Nr   idi  status_codezInvalid coupon codestatus_messageFcustomerisPaidsecond
Percentaged   amountBeforeCouponamountAfterCoupondiscountTypediscount	coupon_iddata   Coupon data)StoreCouponsobjectsfilterfirstr   Cartproductr   printcoupon_typefloatcoupon_discounttotalAmountappendstr	coupon_onstorestore_id)r)   customer_idallDataresponsediscountedAmount
tempAmounttotal_ammountcouponObjectcartObjcartpercents              +/var/www/html/Beni/beni/panel_apis/views.pycouponapplyrH       s    	
""))Y)7==?(=2(	(	<<5AT
lloo--000	(O-<//04WD,,-eGn<d&&'.>(??Z^^#d.>.>*? _$00()!__	& ' d&&'l.J.J(KKZ"22^^#d.>.>*? _$00()!__	' (
 
ll|44777-<//04WeD,,--]%eGn4&6 77Z'*='9 _$00()!__	' )W uT--..]l&B&B CCZ"22'*='9 _$00()!__	' )WM V &-)
    c                 J   g }i }t         j                  j                  |       j                         }|s,t	        t
        j                  ddt
        j                        S t        j                  j                  |      j                         }|j                  ry|j                  j                  j                  |j                  j                  k(  rA|j                  dk(  rt        |j                        dz  }t        |j                         t        |      z  }t        |j                         t        |      z
  }|j#                  t%        |j                         t%        |      |j                  t%        |      |j                  d       nt        |j                         t        |j                        z
  }|j                  }|j#                  t%        |j                         t%        |      |j                  t%        |      |j                  d       |j&                  d	k(  ro|j(                  j                  |j*                  j                  k(  rA|j                  dk(  rt        |j                        dz  }t        |j                         t        |      z  }t        |j                         t        |      z
  }|j#                  t%        |j                         t%        |      |j                  t%        |      |j                  d       nt        |j                         t        |j                        z
  }|j                  }|j#                  t%        |j                         t%        |      |j                  t%        |      |j                  d       ||d
<   d|d<   d|d<   |S )Nr   Invalid coupon idr   r   r   service_request_idr"   r#   r$   Servicer*   r+   r   r,   r   )r-   r.   r/   r0   r   r   HTTP_400_BAD_REQUESTServiceInvoicer2   rN   	serviceIdr   servicer4   r5   r6   total_amountr8   r9   r:   r;   r<   )	r)   
invoice_idr>   r?   rC   
invoiceObjrF   r@   rA   s	            rG   servicecouponapplyrW   _   s
   	
""))Y)7==?	!<!<Nabjp  kF  kF  
G  G$$++z+JPPR"",,//<3G3G3J3JJ,,../3G:223E'NBZ,,-e4D.EEJNNZ-D-D)E
O#//'( OO	& ' Z,,-eL4P4P.QQJ!11NNZ-D-D)E
O#//'( OO	& '
 i'L11444,,../3G:223E'NBZ,,-e4D.EEJNNZ-D-D)E
O#//'( OO	& ' Z,,-eL4P4P.QQJ!11NNZ-D-D)E
O#//'( OO	& '
 &-)
rI   c                       e Zd Zd Zy)getContentPagesc                    |j                   d   }|j                  d   }|s,t        t        j                  ddt        j                        S t
        j                  j                  |d      j                         }|r|dk(  rat
        j                  j                  |d      j                         }|r|j                  |j                  |j                  |j                  d	}n`t
        j                  j                  |d      j                         }|r/|j                  |j                  |j                  |j                  d	}t        t        j                  d
d      S t        t        j                  ddt        j                        S )NlanguagetypezPlease pass the typerL   r   T)	page_typer   ar)
page_titlecontentr]   r   Successr   r   r*   No data found)headersquery_paramsr   r   rP   ContentPagesr.   r/   r0   arabic_page_titlearabic_contentr]   english_page_titleenglish_contentHTTP_200_OK)selfrequestr[   r\   data_objr>   s         rG   getzgetContentPages.get   sj   __Z((			f	%$	
&"="=Oefnt  oJ  oJ  K  K""))D$)GMMO($$$++dD+IOOQH--''$$	W $$++dD+IOOQH..(($$	W &"4"4iW^_
``
&"="=_gm  hC  hC  D  DrI   N__name__
__module____qualname__ro    rI   rG   rY   rY      s    DrI   rY   c                       e Zd Zd Zy)HelpSupportUserc                    |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        |j                        }|j                         r|j                  j                  d      }|j                  j                  d	      }t        j                  j                  |||j                  
       t        t        j                  ddd      S t        |j                   t        j                        S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w)NHTTP_AUTHORIZATIONzsession_token is requiredrL   r   tokenInvalid session tokenr*   titledescription)r}   r~   user_idz Help & Support Send Successfully rb   )METAro   r   r   rP   Userr.   	ExceptionHTTP_401_UNAUTHORIZEDHelpAndSupportSerializerr*   is_validHelpSupportcreater   rk   errors)rl   rm   session_tokenuser_obje
serializerr}   r~   s           rG   postzHelpSupportUser.post   s=     !56-	
&"="=Ojksy  tO  tO  P  PNLL=18 (W\\:*<<G$5!!-0;Ek(++V
&"4"4Fhprs
tt
:$$V-H-H
II 
 N
&">">Pghpv  qM  qM  N  NNs    D5 5	E4>+E/)E4/E4Nrq   rr   rs   r   rt   rI   rG   rv   rv      s    JrI   rv   c                       e Zd Zd Zy)getFaqc                    |j                   d   }|dk(  ret        j                  j                  d      j	                  d      }|rg }|D ],  }|j
                  |j                  d}|j                  |       . ndt        j                  j                  d      j	                  d      }|r3g }|D ],  }|j                  |j                  d}|j                  |       . t        t        j                  dd      S )	Nr[   r^   r
   r   -id)r}   r`   zFetched FAQ Successfullyrb   )rd   Faqr.   r/   order_byarabic_titlerh   r8   english_titlerj   r   r   rk   )rl   rm   r[   rn   r>   data_faqalls          rG   ro   z
getFaq.get   s    __Z((kk   *33E:8G##''S ^^C  kk   *33E:8G$$((S
 ^^C  
!3!3E_gno	pprI   Nrp   rt   rI   rG   r   r      s    qrI   r   c                       e Zd Zd Zy)getContactDetailsc           
         |j                   d   }t        j                  j                         j	                         }|r|dk(  rg|j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  d	}nf|j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  d	}t        t         j"                  d|d      S t        t         j$                  ddt         j$                        S )	Nr[   r^   )	whatsapp_numberphone_numberr~   emailinstagram_urlfacebook_urltwitter_urlyoutube_urladdressra   rb   rc   rL   r   )rd   Contactmanager.   r   r0   r   r   contact_description_arr   r   r   r   r   r   contact_descriptionr   r   rk   rP   )rl   rm   r[   rn   r>   s        rG   ro   zgetContactDetails.get   s.   __Z((##'')//1($//))33^^++))''''
G  //))00^^++))''''
G &"4"4iW^_
``
&"="=_gm  hC  hC  D  DrI   Nrp   rt   rI   rG   r   r      s    DrI   r   c                       e Zd Zd Zy)getCategoriesc                    |j                   d   }|dk(  rHt        j                  j                  dd      j	                  d      }t        |d      j                  }nGt        j                  j                  dd      j	                  d      }t        |d      j                  }t        t        j                  d|d	      S )
Nr[   r^   Tr
   end_date__isnullr   r   )manyra   rb   )rd   MainCategoriesr.   r/   r   GetCategoriesDataArabicr*   GetCategoriesDataEnglishr   r   rk   )rl   rm   r[   main_objget_cats        rG   ro   zgetCategories.get   s    __Z((%%,,d!,LUUVZ[8$X48==7%%,,d!,LUUVZ[8%hD9>>7	!3!3YV]^	__rI   Nrp   rt   rI   rG   r   r      s    `rI   r   c                       e Zd Zd Zy)	getStonesc                 	   |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  dd      }|dk(  rUg }|D ]M  }|j                  |j                  |j                  |j                  |j                  d	}|j                  |       O nTg }|D ]M  }|j                  |j                  |j                  |j                  |j                  d	}|j                  |       O t        j                  j                  dddt!        j"                         
      }	g }
|dk(  r*|	D ]"  }t$        j                  j                  |j                  |      j'                         }|rd}nd}||j                  |j(                  |j*                  j,                  |j.                  j,                  |j0                  |j2                  j4                  |j6                  |j8                  |j:                  t=        j>                  |j@                        |jB                  |jD                  jF                  |jH                  d}|
j                  |       % n=|	D ]7  }t$        j                  j                  |j                  |      j'                         }|rd}nd}||j                  |jJ                  |j*                  jL                  |j.                  jL                  |jN                  |j2                  jP                  |j6                  |j8                  |j:                  t=        j>                  |j@                        |jB                  |jD                  jR                  |jD                  jT                  |jH                  d}|
j                  |       : tV        j                  j                  dddd      jY                  d      d d }|dk(  r`g }|D ]X  }|j                  |jF                  |jZ                  |j\                  |j^                  |jR                  d}|j                  |       Z n_g }|D ]X  }|j                  |jT                  |jZ                  |j`                  |j^                  |jR                  d}|j                  |       Z tc        t        jd                  d||
|d      S )Nrx   ry   r   r[   Tr
   r   r^   )r   
stone_name
stone_iconstone_descriptionr   is_offer_appliedr   r   today_deal_start_date
product_iduserFis_favouriter   product_namemaincategorysubcategoryr~   brandpriceratingsprice_discountimagesr<   
store_nameoffer_discountr   r   r   r   r   r~   r   r   r   r   r   r<   is_vipr   r   falser   is_profile_completedr   r   z-ratings   r<   r   
store_iconstore_descriptionstore_ratingsr   ra   )r   r   r*   	todayDatabest_seller)3r   ro   r   r.   rd   Stonesr/   r   stone_name_arabicr   stone_content_arabicr   r8   stone_name_englishstone_content_englishProductsr   today
Favouritesr0   product_name_arabicr   category_name_arabicr   description_arabicr   brand_name_arabicr   ratingr   astliteral_evalr   r<   r;   store_name_arabicr   product_name_englishcategory_name_englishdescription_englishbrand_name_englishr   store_name_englishStoresr   
store_logostore_description_arabicr   store_description_englishr   rk   )rl   rm   r   r   r[   
stones_objall_datair*   product_objr   r2   favourite_obj	favouritealldata	store_objr   s                    rG   ro   zgetStones.get  sF   ,,""#78-ll]388__Z((~~$$d!$D*8q	
$$..XXD OOD  8q	
%%//XXD OOD    ''d[_x|  yC  yC  yE'  F+)w&&---RXXZMYY**11((==&&;;--]],,]]~~,,w~~.  --11--G  W- 0 w&&---RXXZMYY**22((>>&&<<..]]--]]~~,,w~~.  mm""--22--G" W/ 2 nn##Tt[_gn#oxx  zD  E  FH  GH  I);q%%,,33iihhD t  ;q&&,,44iihhD t  
&"4"4iW_lu  EP  Q  
R  RrI   Nrp   rt   rI   rG   r   r     s	    jRrI   r   c                       e Zd Zd Zy)	getBrandsc                    |j                   d   }t        j                  j                  dd      }|dk(  rJg }|D ]B  }|j                  |j
                  |j                  |j                  d}|j                  |       D nIg }|D ]B  }|j                  |j
                  |j                  |j                  d}|j                  |       D t        t        j                  d|d      S )	Nr[   Tr
   r   r^   )
brand_name
brand_iconbrand_descriptionr   ra   rb   )rd   Brandsr.   r/   r   r   brand_content_arabicr   r8   r   brand_content_englishr   rk   )rl   rm   r[   
brands_objr   r   r*   s          rG   ro   zgetBrands.gety  s    __Z((~~$$d!$D*8q''LL11xx	D OOD  8q((LL22xx	D OOD  
&"4"4iW_`	aarI   Nrp   rt   rI   rG   r   r   x  s    brI   r   c                       e Zd Zd Zy)getServicesc                 :   |j                   d   }|dk(  rvt        j                  j                  dd      }g }|D ]M  }|j                  |j
                  |j                  |j                  |j                  d}|j                  |       O nut        j                  j                  dd      }g }|D ]M  }|j                  |j                  |j                  |j                  |j                  d}|j                  |       O t        t        j                  d|d      S )	Nr[   r^   Tr
   r   )
service_idservice_nameservice_iconservice_contentr   ra   rb   )rd   Servicesr.   r/   r   arabic_service_namer  arabic_service_contentr   r8   english_service_nameenglish_service_contentr   rk   )rl   rm   r[   service_objr   r   r*   s          rG   ro   zgetServices.get  s   __Z((!!(($a(H;8q$$))NN//hhD OOD  !!(($a(H;8q$$**NN00hhD OOD  
&"4"4iW_`	aarI   Nrp   rt   rI   rG   r  r    s    brI   r  c                       e Zd Zd Zy)storeRequestsc                 	   	 t        |j                        }|j                         r t        j                  j                  |j                  j                  d      d      j                         }|r,t        t        j                  ddt        j                        S t        j                  j                  |j                  j                  d      d      j                         }|r,t        t        j                  d	dt        j                        S t        j                  j                  |j                  j                  d
      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      	      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      rct        |j                  j                  d            }t        t        j                         dz   |z   }t        |      |_        |j%                          t'        d|j                  j                  d
      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d	      }d}	|}
t        j(                  }d}t+        j,                  |	|
||g|       t.        j                  j                  d       t        t        j0                  dd      S |j2                  }i }|j5                         D ]  \  }}|} n t        t        j                  |d      S # t6        $ rJ}t9        |       t        t        j:                  t        |      dt        j:                        cY d }~S d }~ww xY w)Nr|   r   r   )r   is_superuserz)This email already exist in our database.rL   r   )r   r   z3Your request from this email has been already send.
first_name	last_namer   isd_codemobile_number	id_number	bank_namebank_account_number)	r  r  r   r   r  r  r  r  r  
id_picturezId picture is required/zstore_request_email.htmlzStore Requestadmin123@yopmail.comhtml_messagez+A new store salon request has been received)messagezStore request send successfully)StoreRequestSerializerr*   r   r   r.   r/   ro   r0   r   r   rP   StoreRequestsr   uploadTheIdpicturer9   r	   BASE_URLr  saver   EMAIL_HOST_USERr   	send_mailAdminNotificationsrk   r   itemsr   r3   HTTP_500_INTERNAL_SERVER_ERROR)rl   rm   r   check_emailcheck_reservereq_objr  fileUrlr  subjectplain_message
from_emailtodefault_errors	new_error
field_namefield_errorsr   s                     rG   r   zstoreRequests.post  s    4O&GLL9:,,%%GLL,<,<W,EST%U[[]KF$?$?Q|}  FL  Fa  Fa  b  b!))00w||7G7G7PZ[0\bbdMF$?$?  RG  H  PV  Pk  Pk  l  l##**,,""<0,,"";/  +\\g&  ,\\%%o6!!+.!!+."<<++,AB + 
G !!,/JF$?$?Qijrx  sN  sN  O  O||% !1!1,!?@g(##$S(0gWglln#$>w||O_O_`lOm  {B  {G  {G  {K  {K  LW  {X  cj  co  co  cs  cs  t}  c~  GN  GS  GS  GW  GW  X_  G`  ls  lx  lx  l|  l|  }G  lH  Y`  Ye  Ye  Yi  Yi  jy  Yz  GN  GS  GS  GW  GW  Xc  Gd  qx  q}  q}  qA  qA  BM  qN  el  eq  eq  eu  eu  vK  eL  AM  NLG M))J	BNN7M:t,W%%.[%\ F$6$6Hijkk  &&NI$2$8$8$: 
LY
 %; 6#>#>PYZ[[	 O8
&"G"GY\]^Y_`hn  iN  iN  O  OOs:   BR A5R ER 'G!R 	AR 	S!?SS!S!Nr   rt   rI   rG   r  r    s    5OrI   r  c                       e Zd Zd Zy)getAllStoresc                 (   |j                   d   }t        j                  j                  dddd      }|dk(  r`g }|D ]X  }|j                  |j
                  |j                  |j                  |j                  |j                  d}|j                  |       Z n_g }|D ]X  }|j                  |j                  |j                  |j                  |j                  |j                  d}|j                  |       Z t        t        j                  d|d      S )	Nr[   Tr   r   r^   r   ra   rb   )rd   r   r.   r/   r   r   r   r   r   r   r8   r   r   r   r   rk   )rl   rm   r[   r   r   r   r*   s          rG   ro   zgetAllStores.get  s    __Z((nn##Tt[_gn#o)8q%%,,33iihhD OOD  8q&&,,44iihhD OOD  
&"4"4iW_`	aarI   Nrp   rt   rI   rG   r7  r7    s    brI   r7  c                       e Zd Zd Zy)searchGetCategoriesc                    |j                   d   }|dk(  rMt        j                  j                  dd      }g }|D ]X  }|j                  |j
                  |j                  |j                  |j                  |j                  d}|j                  |       Z t        j                  j                  d      }g }|D ]7  }|j                  |j                  |j                  d}|j                  |       9 t        j                  j                  d      j                  d      }	g }
|	D ]7  }|j                  |j                   |j"                  d	}|
j                  |       9 nKt        j                  j                  dd      }g }|D ]X  }|j                  |j$                  |j                  |j&                  |j                  |j                  d}|j                  |       Z t        j                  j                  d      }g }|D ]7  }|j                  |j(                  |j                  d}|j                  |       9 t        j                  j                  d      j                  d      }	g }
|	D ]7  }|j                  |j*                  |j"                  d	}|
j                  |       9 t-        t.        j0                  d
|||
d      S )Nr[   r^   T)r   r   r   )r   )brand_idr   r   r   )category_idcategory_namecategory_iconra   )r   r   storesbrandsmain_categories)rd   r   r.   r/   r   r   r   r   r   r   r8   r   r   r   r   r   r   r?  r   r   r   r   r   r   rk   )rl   rm   r[   r   r   r   r*   r  all_data_brandsr   all_data_mains              rG   ro   zsearchGetCategories.get  s   __Z((~~$$dPT$U98q%%,,33iihhD OOD  %%t%<:?q''LLD
 4   %%,,d,CLLTR8=q44--D
   ~~$$dPT$U98q&&,,44iihhD OOD  %%t%<:?q((LLD
 4   %%,,d,CLLTR8=q44..D
   
&"4"4iYakz  N[  \  
]  ]rI   Nrp   rt   rI   rG   r:  r:    s	    @]rI   r:  c                       e Zd Zd Zy)getStoreDetailsc                    |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|j
                  j                  d      }|s,t        t        j                  ddt        j                  	      S |j
                  j                  d
      }|s,t        t        j                  ddt        j                  	      S |s,t        t        j                  ddt        j                  	      S t        j                  j                  |      j                         }|s,t        t        j                  ddt        j                  	      S t        j                  j                  |d      }	t        j                  j                  |d      }
t        j                  j                  |d      j                         }t        |
|      }	 |j!                  |      }
g }g }|dk(  r|j(                  |j*                  |j,                  |j.                  |j0                  |j2                  |j4                  |j6                  d}|	D ]j  }|j8                  j(                  |j8                  j:                  |j8                  j<                  |j8                  j>                  d}|jA                  |       l |
D ]"  }tB        j                  j                  |j(                  |      j                         }|rd}nd}||j(                  |jD                  |jF                  jH                  |jJ                  jH                  |jL                  |jN                  jP                  |jR                  |jT                  |jV                  tY        jZ                  |j\                        |j^                  |j`                  |jb                  j4                  d}|jA                  |       % n|j(                  |jd                  |jf                  |j.                  |j0                  |j2                  |j4                  |j6                  d}|	D ]j  }|j8                  j(                  |j8                  jh                  |j8                  j<                  |j8                  jj                  d}|jA                  |       l |
D ]"  }tB        j                  j                  |j(                  |      j                         }|rd}nd}||j(                  |jl                  |jF                  jn                  |jJ                  jn                  |jp                  |jN                  jr                  |jR                  |jT                  |jV                  tY        jZ                  |j\                        |j^                  |j`                  |jb                  j4                  d}|jA                  |       % t        t        jt                  d||||r|nd|j&                  tw        |
      |d	      S # t"        $ r |j!                  d      }
Y Gt$        $ r |j!                  |j&                        }
Y mw xY w)Nrx   ry   r   r[   r<   pagePage Number id is requiredrL   r   page_per_dataPage per data id is requiredzStore id is requiredr   No store foundTr;   r   r<   r   r
   r^   )r<   r   r   r   store_bannerr   r   store_numberr  r  r  r  r   F)r   r   r   r   r   r~   r   r   r   r   r   r<   r   r   ra   )	r   r   product_data
store_dataserviceDatarH  
page_countper_pagetotal)<r   ro   r   r.   rd   r*   r   r   rP   r   r/   r0   storeServicesr   countr   rH  r   r   	num_pagesr   r   r   r   rO  r   r   rP  rR   r
  r  r  r8   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   rk   len)rl   rm   r   r   r[   r<   rH  rJ  r   r  r   total_count	paginatorr>   rT  rS  rS   servicedatar2   r   r   productdatas                         rG   r   zgetStoreDetails.postO  s   ,,""#78-ll]388__Z((\\j)(			&	!$	6#>#>Plmu{  vQ  vQ  R  R,,""?3-	6#>#>Pnow}  xS  xS  T  T	
&"="=Oefnt  oJ  oJ  K  K~~$$$1779)	
&"="=O_`hn  iD  iD  E  E%%,,XT,J+  '''F+  '''FLLN+]3)5%; '+||,,!::%%))&&))	: w$$'''';;''44))@@	K {#  w&&---RXXZMYY00''<<%%::,,MM++~~
 MM++gnn-,,]]!!%K( NN;5 < ||--!;;%%))&&))
: w$$''''<<''44))AA	K {#  w&&---RXXZMYY::33))??''==//mm..mm--/!!..}}##K  NN;- 2 
&"4"4i_ft~  NY  im  ae  st  CL  CV  CV  cf  gr  cs  |G  H  
I  IO 
 #";	 5	 3 34;5s   Y   Z#ZZNr   rt   rI   rG   rF  rF  N  s	    @IrI   rF  c                       e Zd Zd Zy)getCategoryProductsc                 `	   |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d	      }|j
                  j                  d
      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S |r&|r$t        j                  j                  ||dd      }	n"t        j                  j                  |dd      }	t        |	|      }
	 |
j                  |      }	g }|dk(  r?|	D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |j&                  |j(                  j*                  |j,                  j*                  |j.                  |j0                  j2                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jF                  |jH                  d}|jK                  |       : n=|	D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |jL                  |j(                  jN                  |j,                  jN                  |jP                  |j0                  jR                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jT                  |jH                  d}|jK                  |       : t        t        jV                  d||r|nd|
j                  tY        |	      d      S # t        $ r |
j                  d      }	Y t        $ r |
j                  |
j                        }	Y w xY w)Nrx   ry   r   r[   maincategory_idzMaincategory id is requiredrL   r   subcategory_idrH  rI  rJ  rK  T)rc  rd  r   r   )rc  r   r   r
   r^   r   Fr   r   r   r   r   r~   r   r   r   r   r   r<   r   r   r   ra   r   r   r*   rH  rU  rV  -r   ro   r   r.   rd   r*   r   r   rP   r   r/   r   rH  r   r   rZ  r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r   r   r8   r   r   r   r   r   rk   r[  )rl   rm   r   r   r[   rc  rd  rH  rJ  r   r]  r>   r2   r   r   r   s                   rG   r   zgetCategoryProducts.post  s   ,,""#78-ll]388__Z((LL$$%67/	
&"="=Olmu{  vQ  vQ  R  R<<##$45.			&	!$	
&"="=Okltz  uP  uP  Q  Q,,""?3-	
&"="=Omnv|  wR  wR  S  S!!((Xfz~  GK(  L;!!((\`hl(m;]3)5%;
 'w&&---RXXZMYY**11((==&&;;--]],,
 ]],,w~~.  mm""--11--'G, NN79 < w&&---RXXZMYY**22((>>&&<<..]]--
 ]],,w~~.  mm""--22--'G, NN79 : 
&"4"4iW^nrfjxy  IR  I\  I\  il  mx  iy  z  
{  {C 
 #";	 5	 3 34;5s   Q) )R-#R-,R-Nr   rt   rI   rG   ra  ra    s	    Y{rI   ra  c                       e Zd Zd Zy)getStoneProductsc                 	   |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d	      }|j
                  j                  d
      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |dd      }	t        |	|      }
	 |
j                  |      }	g }|dk(  r?|	D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |j&                  |j(                  j*                  |j,                  j*                  |j.                  |j0                  j2                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jF                  |jH                  d}|jK                  |       : n=|	D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |jL                  |j(                  jN                  |j,                  jN                  |jP                  |j0                  jR                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jT                  |jH                  d}|jK                  |       : t        t        jV                  d||r|nd|
j                  tY        |	      d      S # t        $ r |
j                  d      }	Y t        $ r |
j                  |
j                        }	Y w xY w)Nrx   ry   r   r[   stone_idzStone id is requiredrL   r   rd  rH  rI  rJ  rK  T)rk  r   r   r
   r^   r   Fre  ra   rf  rg  )rl   rm   r   r   r[   rk  rd  rH  rJ  r   r]  r>   r2   r   r   r   s                   rG   r   zgetStoneProducts.post.  s   ,,""#78-ll]388__Z((\\j)(	
&"="=Oefnt  oJ  oJ  K  K<<##$45.			&	!$	
&"="=Okltz  uP  uP  Q  Q,,""?3-	
&"="=Omnv|  wR  wR  S  S  ''TY]'^+]3)5%;
 'w&&---RXXZMYY**11((==&&;;--]],,
 ]],,w~~.  mm""--11--'G, NN79 < w&&---RXXZMYY**22((>>&&<<..]]--
 ]],,w~~.  mm""--22--'G, NN79 : 
&"4"4iW^nrfjxy  IR  I\  I\  il  mx  iy  z  
{  {C 
 #";	 5	 3 34;5s   5Q R#RRNr   rt   rI   rG   ri  ri  -  s	    V{rI   ri  c                       e Zd Zd Zy)getProductDetailsc                    |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |d	
      j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                  |      j                         }|rd	}nd}|dk(  r@i d|d|j                  d|j                  d|j                  j                   d|j"                  j                   d|j$                  d|j&                  j(                  d|j*                  d|j,                  d|j.                  d|j0                  d|j2                  d|j4                  d|j6                  dt9        j:                  |j<                        d|j>                  d|j@                  jB                  |j@                  jD                  |jF                  |jH                  d}	n>i d|d|j                  d|jJ                  d|j                  jL                  d|j"                  jL                  d|jN                  d|j&                  jP                  d|j*                  d|j.                  d|j,                  d|j0                  d|j2                  d|j4                  d|j6                  dt9        j:                  |j<                        d|j>                  d|j@                  jB                  |j@                  jR                  |jF                  |jH                  d}	t        t        jT                  d |	d!      S )"Nrx   ry   r   r[   r   zProduct id is requiredrL   r   Tr   r   zProduct not foundr   Fr^   r   r   r   r   r~   r   
model_namer   sizeweightcolorr   r   r   r<   r   )r   r   quantityra   rb   )+r   ro   r   r.   rd   r*   r   r   rP   r   r/   r0   r   r   r   r   r   r   r   r   r   rp  r   rq  rr  rs  r   r   r   r   r   r<   r;   r   r   r   rt  r   r   r   r   r   rk   )
rl   rm   r   r   r[   r   r   r   r   r   s
             rG   r   zgetProductDetails.post  s&   ,,""#78-ll]388__Z((||-*	
&"="=Oghpv  qL  qL  M  M  '':T'BHHJ+	
&"="=Obckq  lG  lG  H  H$$++{~~8+TZZ\-99I+.. k55 K,,AA	
 ;**?? ;11 [00 +(( "" K k   [ [ k00 c{112  $$!" k&&#$ ##55"11$$)G0I+.. k66 K,,BB	
 ;**@@ ;22 [11 +(( K "" k   [ [ k00 c{112  $$!" k&&#$ ##66"11$$)G. 
&"4"4iW^_	``rI   Nr   rt   rI   rG   rm  rm    s	    CarI   rm  c                       e Zd Zd Zy)searchProductc                    |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d	      }|s,t        t        j                  d
dt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }|r6g }	|dk(  r|j                         D ]E  }
|dk(  rd|rbt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      j                  d      }n|dk(  rd|rbt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      j                  d      }nRt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      }t        ||      }	 |j                  |      }H D ]7  }t&        j                  j                  |j(                  |      j+                         }|rd}nd}||j(                  |j,                  |j.                  j0                  |j2                  j0                  |j4                  |j6                  j8                  |j:                  |j<                  |j>                  tA        jB                  |jD                        |jF                  |jH                  jJ                  |jH                  jL                  |jN                  d}|	jQ                  |       : n|j                         D ]E  }
|dk(  rd|rbt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      j                  d      }n|dk(  rd|rbt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      j                  d      }nRt        j                  j                  t        |
      t        |
      z  t        |
      z  t        |
      z  d      }t        ||      }	 |j                  |      }H D ]7  }t&        j                  j                  |j(                  |      j+                         }|rd}nd}||j(                  |jR                  |j.                  jT                  |j2                  jT                  |jV                  |j6                  jX                  |j:                  |j<                  |j>                  tA        jB                  |jD                        |jF                  |jH                  jJ                  |jH                  jZ                  |jN                  d}|	jQ                  |       : t        t        j\                  d 	|r|ndj$                  t_              d!      S # t         $ r |j                  d      }Y rt"        $ r |j                  |j$                        }Y w xY w# t         $ r |j                  d      }Y !t"        $ r |j                  |j$                        }Y Gw xY w)"Nrx   ry   r   r[   searchzSearch field is requiredrL   r   rH  rI  rJ  rK  	sort_datar^   highest_price)product_name_arabic__icontains)-maincategory__category_name_arabic__icontains)#brand__brand_name_arabic__icontains)#store__store_name_arabic__icontainsTz-pricelowest_pricer   r
   r   Fre  )product_name_english__icontains).maincategory__category_name_english__icontains)$brand__brand_name_english__icontains)$store__store_name_english__icontainsra   rf  )0r   ro   r   r.   rd   r*   r   r   rP   splitr   r/   r   r   r   rH  r   r   rZ  r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r   r   r8   r   r   r   r   r   rk   r[  )rl   rm   r   r   r[   rx  rH  rJ  ry  r>   sr   r]  r2   r   r   r   s                    rG   r   zsearchProduct.post  s   ,,""#78-ll]388__Z((<<H%&	
&"="=Oijrx  sN  sN  O  O			&	!$	
&"="=Okltz  uP  uP  Q  Q,,""?3-	
&"="=Omnv|  wR  wR  S  S||,)7$lln	o	%&%%,,Qa-PQR  BC  RD  .D  EF  kl  Em  .m  no  TU  nV  .V  ^b,  c  l  l  mu  v{&6%%,,Qa-PQR  BC  RD  .D  EF  kl  Em  .m  no  TU  nV  .V  ^b,  c  l  l  mt  u{%%,,Qa-PQR  BC  RD  .D  EF  kl  Em  .m  no  TU  nV  .V  ^b,  c{K7i9^^D){    ((//7::8/TZZ\m	yyJJ33**??((==//}}....
 }}..  0""$$MM33 //'g, nnW9  < lln	o	%&%%,,Qq-QRS  DE  SF  .F  GH  no  Gp  .p  qr  XY  qZ  .Z  bf,  g  p  p  qy  z{&6%%,,Qq-QRS  DE  SF  .F  GH  no  Gp  .p  qr  XY  qZ  .Z  bf,  g  p  p  qx  y{%%,,Qq-QRS  DE  SF  .F  GH  no  Gp  .p  qr  XY  qZ  .Z  bf,  g{K7i9^^D){    ((//7::8/TZZ\m	yyJJ44**@@((>>00}}//..
 }}..  0""$$MM44 //'g* nnW7  8 
&"4"4iW^nrfjxy  IR  I\  I\  il  mx  iy  z  
{  {Y  '^^A&{ 9^^I$7$78{9T  '^^A&{ 9^^I$7$78{9s0   Z6.[=6[:#[:9[:=]#] ]Nr   rt   rI   rG   rv  rv    s	    k{rI   rv  c                       e Zd Zd Zy)addRemoveFavouritec                    |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |d	
      j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  ||d      \  }}|s,|j                          t        t        j                   dd      S |j#                          t        t        j                   dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w)Nrx   session token is requiredrL   r   ry   r{   r   Product Id is requiredTro  No product foundr
   )r2   r   r   zRemoved from favourite listzAdded to favourite list.)r   ro   r   r   rP   r   r.   r   r   r*   r   r/   r0   r   get_or_createdeleterk   r$  )	rl   rm   r   r   r   r   r   favourite_postcreateds	            rG   r   zaddRemoveFavourite.post=  s   ,,""#78-	
&"="=Ojksy  tO  tO  P  PN||m48 ||-*	
&"="=Oghpv  qL  qL  M  M  '':T'BHHJ+	
&"="=Oabjp  kF  kF  G  G&..<<[V^lm<n.'	
&"4"4Fcd
ee
&"4"4F`a
bb 
 N
&">">Pghpv  qM  qM  N  NNs    F 	G+G
G
GNr   rt   rI   rG   r  r  <  s    crI   r  c                       e Zd Zd Zy)storeFavouriteListingc                    |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        }g }|d	k(  r.|D ]&  }d
|j                  j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                  |j                  j$                  t'        j(                  |j                  j*                        |j                  j,                  |j                  j.                  j0                  |j                  j.                  j2                  |j                  j4                  d}	|j7                  |	       ) n+|D ]%  }|j                  j                  |j                  j8                  |j                  j:                  |j                  j                   |j                  j"                  |j                  j$                  t'        j(                  |j                  j*                        |j                  j,                  |j                  j.                  j0                  |j                  j.                  j<                  |j                  j4                  d}	|j7                  |	       ( t        t        j>                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r   r^   T)r   r   r   r~   r   r   r   r   r<   r   r   r   )r   r   r~   r   r   r   r   r<   r   r   r   zFetched successfullyrb   ) rd   r   ro   r   r   rP   r   r.   r   r   r   r/   r   r2   r   r   r   r   r   r   r   r   r<   r;   r   r   r   r8   r   r   r   rk   )
rl   rm   r[   r   r   r   r   r>   rR  r   s
             rG   ro   zstoreFavouriteListing.getT  s   __Z((,,""#78-	
&"="=Ojksy  tO  tO  P  PN||m48 ""))(++)>+'"|&&))"**>>''::!!''$$++"**99|33::;$$--""((//&&,,>>#++::G NN7 #" #|&&))"**??'';;!!''$$++"**99|33::;$$--""((//&&,,??#++::G NN7 # 
&"4"4F\dkl	mmK 
 N
&">">Pghpv  qM  qM  N  NNs    L" "	M!++MM!M!Nrp   rt   rI   rG   r  r  S  s    ,nrI   r  c                       e Zd Zd Zy)	addToCartc           	         	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        |j                        }|j                         rlt        j                  j                  |j                  j                  d	      d
      j                         }|s,t        t        j
                  ddt        j
                        S i }|j                  j                  d      }	|j                   r|j                   }
n|j"                  }
t%        |
      t%        |	      z  }t&        j                  j                  |j(                  |d      j                         }t+        d|       |s6t+        d       t&        j                  j-                  ||j(                        }|	|_        ||_        |j3                          t&        j                  j                  |j(                        j5                         }|}t&        j                  j                  |j(                  d      }t+        d|       g }|dk(  r|D ]  }|j6                  j                   r|j6                  j                   }n|j6                  j"                  }|j6                  j(                  |j6                  j8                  |j6                  j:                  t=        j>                  |j6                  j@                        |j.                  |d}|jC                  |        n|D ]  }|j6                  j                   r#|j6                  j                   }t+        d|       n"|j6                  j"                  }t+        d|       |j6                  j(                  |j6                  jD                  |j6                  jF                  t=        j>                  |j6                  j@                        |j.                  |d}|jC                  |        t&        j                  j                  |j(                  d      D cg c]  }t%        |j0                         }}t&        j                  j                  |j(                  d      D cg c]  }t%        |j0                         }}tI        |      }tI        |      }d}t        t        jJ                  d||||d      S |jL                  }i }|jO                         D ]  \  }}|} n t        t        j
                  |d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY wc c}w c c}w # t        $ rJ}t+        |       t        t        jP                  tS        |      dt        jP                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r|   r   Tro  z Invalid product idrt  F)r=   r2   r    cartItemzif cart)r2   r=   )r=   r=   r    cart_objr^   r   product_descriptionr   product_imageproduct_countproduct_amountzif product_amountzelse product_amountr   r   r  r  r  r  r   zCart Updatedr   r   r*   the_subtotalrT   
tax_amount)*rd   r   ro   r   r   rP   r   r.   r   r   AddToCartSerializerr*   r   r   r/   r0   r   r   r5   r1   r   r3   r   productCountr7   r$  rY  r2   r   r   r   r   r   r8   r   r   sumrk   r   r(  r)  r9   )rl   rm   r[   r   r   r   r   
productObjr>   
totalcountselling_pricetotalamountr  	totalItemtotalCartItemr  rE   r  r   usercartTotalAmountSubtotalfinalSubtotal
finalTotal	taxAmountr2  r3  r4  r5  s                                rG   r   zaddToCart.post  s	   TOooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H $6:!!((GLL,<,<\,JRV(W]]_JF$?$?Qfgou  pK  pK  L  LG!!*-J  ..]%%]&z)::K||""x{{:UZ"[aacH	*X
9##J8;;#OX&H&HMMO###<BBDIM||""x{{%"HH	*XG4		$	$33~**~LLOO!\\<<ll66''(;(;<((&g nnW  		$	$33~ 0**~">2 LLOOll77!\\==''(;(;<((&g nnW! " @D||?R?R_g_j_jrw?R?xy?x85--.?xKy<@LL<O<O\d\g\got<O<uv<uh**+<uHvMM[!JIF$6$6^e  vC  S]  kt  u  v  v&&NI$2$8$8$: 
LY
 %; 6#>#>PYZ[[S  O6#?#?Qhiqw  rN  rN  O  OOz zv 
 O8
&"G"GY\]^Y_`hn  iN  iN  O  OOsu   AV  U ;BV MV -V	/V 8V9V AV 	V+VVV VV 	W2(?W-'W2-W2Nr   rt   rI   rG   r  r    s	    UOrI   r  c                       e Zd Zd Zy)getCartc           
         	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                  d	      }t        j                  j                         j                         }g }|d
k(  r|D ]  }	|	j                   j"                  r|	j                   j"                  }
n|	j                   j$                  }
|	j                   j                  |	j                   j&                  |	j                   j(                  t+        j,                  |	j                   j.                        |	j0                  |
d}|j3                  |        n|D ]  }	|	j                   j"                  r|	j                   j"                  }
n|	j                   j$                  }
|	j                   j                  |	j                   j4                  |	j                   j6                  t+        j,                  |	j                   j.                        |	j0                  |
d}|j3                  |        |j8                  }t        j                  j                  |j                  d	      D cg c]  }t;        |j<                         }}t        j                  j                  |j                  d	      D cg c]  }t;        |j<                         }}t?        |      }t?        |      }|}d}t        t        j@                  d|||||d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY wc c}w c c}w # t        $ r?}t        t        jB                  tE        |      dt        jB                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   Fr  r^   r  r  r   ra   )r   r   r*   r  rT   r  	vat_value)#rd   r   ro   r   r   rP   r   r.   r   r   r1   r/   r   CommissionSectionr   r0   r2   r   r   r   r   r   r   r   r  r8   r   r   vat_percentager5   r7   r  rk   r)  r9   )rl   rm   r[   r   r   r   r  r  r>   rE   r  r   r  r  r  r  r  
last_totalr  s                      rG   ro   zgetCart.get  s^   6Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H ll!!hkk!G8 ((,,.44697$##||22n||))n<<?? LL;;\\55&&t||':':;''%W ^^G  ##||22n||))n <<??\\66 LL<<&&t||':':;''%W ^^G   ''9>Bll>Q>Q^f^i^iqv>Q>wx>w(%,,->w;x;?<<;N;N[c[f[fns;N;tu;txuX))*;t8ux==K ::9
6#5#5yX_o|  MW  en  {D  E  F  F[  O6#?#?Qhiqw  rN  rN  O  OOL yu 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsg   AN%  M ;H:N% 5N/N%  N <N% 	N"+NNN% NN% %	O-.4O("O-(O-Nrp   rt   rI   rG   r  r    s    7OrI   r  c                       e Zd Zd Zy)
removeCartc           	      	   	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }|j                  j                  d      }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  |j                  d
|      }t        d|       |s,t        t        j
                  ddt        j
                        S |j                          t        j                  j                  |j                  d
      }g }|dk(  r|D ]  }	|	j                   j"                  r|	j                   j"                  }
n|	j                   j$                  }
|	j                   j                  |	j                   j&                  |	j                   j(                  t+        j,                  |	j                   j.                        |	j0                  |
d}|j3                  |        n|D ]  }	|	j                   j"                  r|	j                   j"                  }
n|	j                   j$                  }
|	j                   j                  |	j                   j4                  |	j                   j6                  t+        j,                  |	j                   j.                        |	j0                  |
d}|j3                  |        t        j                  j                  |j                  d
      D cg c]  }t9        |j:                         }}t        j                  j                  |j                  d
      D cg c]  }t9        |j:                         }}t=        |      }t=        |      }d}t        t        j>                  d||||d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY wc c}w c c}w # t        $ rS}t        tA        |             t        t        jB                  tA        |      dt        jB                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r   r  F)r=   r    r   r  zProduct not found in your cartr  r^   r  r  r   z"Removed successfully from the cartr  )"rd   r   ro   r   r   rP   r   r.   r   r   r*   r1   r/   r   r3   r  r2   r   r   r   r   r   r   r   r  r8   r   r   r5   r7   r  rk   r9   r)  )rl   rm   r[   r   r   r   r   r  r>   rE   r  r   r  r  r  r  r  r  s                     rG   r   zremoveCart.post  s   :Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H   .:
6#>#>Phiqw  rM  rM  N  Nll!!hkkR\!]8H
6#>#>Ppqy  zU  zU  V  V??ll!!hkk!G87$##||22n||))n<<?? LL;;\\55&&t||':':;''%W ^^G  ##||22n||))n <<??\\66 LL<<&&t||':':;''%W ^^G  ?Cll>Q>Q^f^i^iqv>Q>wx>w(%,,->w;x;?<<;N;N[c[f[fns;N;tu;txuX))*;t8ux==K :9
6#5#5Gksz  KX  hr  @I  J  K  Ka  O6#?#?Qhiqw  rN  rN  O  OOV yu
 
 OQ=
&"G"GY\]^Y_`hn  iN  iN  O  OOsv   AP)  O ;AP) A%P) *HP) <P/P) P$#9P) 	P&+PPP) PP) )	R2AR :R RNr   rt   rI   rG   r  r    s    ;OrI   r  c                       e Zd Zd Zy)checkoutInfoc                    	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                         j                         }|j                  r|j                  }nd}t        j                  j                  |j                   d	
      }t        j                  j                  |j                   d	
      D 	cg c]  }	t#        |	j$                         }
}	t        j                  j                  |j                   d	
      D 	cg c]  }	t#        |	j$                         }}	|j&                  }d}d}|j                  d      }|r^t)        ||j                         }|d   dk(  r"|d   d   d   }|d   d   d   }t#        |      }nt        |      S t+        |
      |z
  }d}|}nt+        |      }d	}|}||||dt+        |
      |d}t        t        j,                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY wc c}	w c c}	w # t        $ r?}t        t        j.                  t1        |      dt        j.                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{           Fr  r   r)   r   r+   r*   r   r(   T)r  isCouponSelectedcoupounDiscountcouponIdshipping_chargesr  r  ra   rb   )rd   r   ro   r   r   rP   r   r.   r   r   r  r   r0   r  r1   r/   r   r5   r7   r*   rH   r  rk   r)  r9   )rl   rm   r[   r   r   r   vat_objr  r  r  rT   r  r*   r@   couponr)   functionResponsediscountOnItemsubtotal_amountr  r  r>   s                         rG   r   zcheckoutInfo.postS  s   5Oz*8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H &&**,2247&&IIll!!hkk!G8?C||?R?R_g_j_jrw?R?xy?x85--.?x<y;?<<;N;N[c[f[fns;N;tu;txuX))*;t8u
,,46xx$9 8;;7&+$V,Q/
;^'*;7YN+%&&,'*::OF8}O: )(,'7 6#5#5yX_`
aaY  O6#?#?Qhiqw  rN  rN  O  OO zuF 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOso   AJ  I ;BJ J6/J %J
A/J 1AJ 	J+I=7J8J =JJ 	K4KKKNr   rt   rI   rG   r  r  R  s    6OrI   r  c                       e Zd Zd Zy)addCustomerCardc           	      ~   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                  	      j                         }|j                  st               |_        |j!                          |j                  rV|j                  }t"        j$                  t&        _        t&        j*                  j-                  ||
      }|rt.        j                  j                  |d      j                         }	|	rd}
nd}
t.        j                  j1                  |j                  |d   |d   |d   |d   |d   |
      }|j2                  |j4                  |j6                  |j8                  |j:                  |j                  |j<                  d}t        t        j>                  d|d      S t        t        j                  ddt        j                        S t        t        j                  ddt        j                        S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ rJ}tA        |       t        t        jB                  tE        |      dt        jB                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   card_idzCard Id is requiredr  )sourceT)r=   	isdefaultFr   	exp_monthexp_yearr   last4)r=   r  r  r  theCustomerStripe
last_digitr  )cardCustomerID	lastDigitexpMonthexpYearcardIDcardObjectIDr  ra   rb   zOops! Something went wrong)#r   ro   r   r   rP   r   r.   r   r   r*   Buyerr/   r   r0   stripe_customer_idcreateCustomerOnStriper$  r	   STRIPE_SECRET_KEYstripeapi_keyCustomercreate_sourceCustomerCardr   r  r  r  r  r  r  rk   r3   r)  r9   )rl   rm   r   r   r   r  customerObj
customerId
createCardalreadyAdefaultCardPresent
theDefaultcardObjr   s                rG   r   zaddCustomerCard.post  s0   /O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H \\i(7
6#>#>Pefnt  oJ  oJ  K  K%%hkk%:@@B;

(
(%;%=K"$$//J//FN..z.IJ , 4 4 ; ;^b ; c i i k"j j##**{~~jY]N^ist  jA  KU  V`  Ka  t~  I  tJ  V`  ah  Vi  t~*  W !22&&$$""zz%%W F$6$6	Y`abbF$?$?Qmnv|  wR  wR  S  S6#>#>Plmu{  vQ  vQ  R  RM  O6#?#?Qhiqw  rN  rN  O  OON 
 O8
&"G"GY\]^Y_`hn  iN  iN  O  OOsb   AK)  J' ,AK) 5FK) +K) ;+K) '	K&0+K!K&K) !K&&K) )	L<2?L71L<7L<Nr   rt   rI   rG   r  r        0OrI   r  c                       e Zd Zd Zy)getCardListc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }t        j                  j                  |j                        }g }|D ]~  }i }	|j                  |	d	<   |j                  |	d
<   |j                   |	d<   |j"                  |	d<   |j$                  |	d<   |j                  |	d<   |j&                  |	d<   |j)                  |	        t        t        j*                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r   r  r  r  r  r  r  r  ra   rb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r  r  r  r  r  r  r  r8   rk   r)  r9   )
rl   rm   r   r   r   r  theCardsr>   cardcontexts
             rG   ro   zgetCardList.get  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;  '''@87tG $ 6 6G//GK..GJGIGH"ggGN>>GKNN7  &"4"4iW^_
``  O6#?#?Qhiqw  rN  rN  O  OO  
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsO   AF2  E0 ,DF2 0	F/9+F*$F/%F2 *F//F2 2	G:;4G5/G:5G:Nrp   rt   rI   rG   r  r        OrI   r  c                       e Zd Zd Zy)
removeCardc                 z   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                        j                         }t        j                  j                  |j                  |	      j                         }t        d
|       |s,t        t        j                  ddt        j                        S |j                   dk(  r,t        t        j                  ddt        j                        S t"        j$                  t&        _        t&        j*                  j-                  t/        |j0                        t/        |            }t        d|       |d   dk(  r|j3                          t        t        j4                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j6                  t/        |      dt        j6                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r   r  r  Invalid card IdTz"You can not delete a default card.	Card_InfodeletedzCard deleted successfully)r   ro   r   r   rP   r   r.   r   r   r*   r  r/   r   r0   r  r3   r  r	   r  r  r  r  delete_sourcer9   r  r  rk   r)  )	rl   rm   r   r   r   r  r  r  cardInfos	            rG   r   zremoveCard.post  sr   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H \\i(7
6#?#?Qhiqw  rN  rN  O  O%%hkk%:@@B;!!((+..(QWWY77
6#?#?Qbckq  lH  lH  I  I46#>#>Ptu  ~D  ~Y  ~Y  Z  Z,,6>oo++!!"L8 	XyT!NN
&"4"4Fab
cc+  O6#?#?Qhiqw  rN  rN  O  OO. 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsc   AI2  H0 ,AI2 5B*I2  :I2 BI2 0	I/9+I*$I/%I2 *I//I2 2	J:;4J5/J:5J:Nr   rt   rI   rG   r  r    s    OrI   r  c                       e Zd Zd Zy)setDefaultCardc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                  	      j                         }t        j                  j                  ||
      j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |d      j                         }|rd|_        |j!                          d|_        |j!                          t        t        j"                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j$                  t'        |      dt        j$                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  zcard Id is requiredr  r  r  T)r   r  Fra   )r   ro   r   r   rP   r   r.   r   r   r*   r  r/   r   r0   r  r  r$  rk   r)  r9   )	rl   rm   r   r   r   r  r  r  oldDefaultCards	            rG   r   zsetDefaultCard.post  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H \\i(7
6#>#>Pefnt  oJ  oJ  K  K%%hkk%:@@B;!!((+g(NTTV7
6#?#?Qbckq  lH  lH  I  I ((//t/TZZ\>$N7
<<>
&"4"4iP
QQ  O6#?#?Qhiqw  rN  rN  O  OO  
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AH  G ,AH 5BH 
A:H 	H+G?9H:H ?HH 	I4I
I
INr   rt   rI   rG   r  r    r  rI   r  c                       e Zd Zd Zy)
placeOrderc                 t
   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |	      j                         }t        j                  j                         j                         }|j                  r|j                  }nd
}t         j                  j                  |j"                  d      j                         }	t%        |	       d}
d}d}t&        j                  j                  |d      j                         }t%        d|       |s)t&        j                  j)                  |t+                     }t%        d       ||_        |	|_        |j1                          t%        d       t         j                  j                  |j"                  d      D cg c]  }t3        |j4                         }}t%        d|       t7        |      }t%        d       d}|j                  j                  d      rt9        |j                  j                  d      |j"                        }|d   dk(  r|d   d   d   }t3        |      }t:        j                  j                  |j                  j                  d      	      j                         }|s,t        t        j                  ddt        j                        S ||_        d|_        ||z
  }nt        |      S |}d|_        |}|}djA                  |      |_!        ||_"        ||_#        ||_        |j1                          t         j                  j                  |j"                  d      }|D ]#  }|jH                  |_$        |j1                          % i }|jK                  |jH                  tM        |      tM        tA        t3        |      d            tM        tA        t3        |      d            tM        |j>                        d       t        t        jN                  d|d       S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY wc c}w # t        $ r?}t        t        jP                  tM        |      dt        jP                        cY d }~S d }~ww xY w)!Nrx   r  rL   r   ry   r{   
address_idzAddress Id is requiredr   r  Fr  r   r   orderPackObjects)r   orderIdsucessssucesss1subTotalAmountsucesss2r)   r   r+   r*   r(   zInvalid Coupon CodeTz{:.2f}z.2f)r  subTotalr  Totalr  ra   rb   ))r   ro   r   r   rP   r   r.   r   r   r*   	Addressesr/   r0   r  r   r  r1   r   r3   	orderPackr   gernateOrderIddeliveryAddressproductDetailr$  r5   r7   r  rH   r-   r  r  formatcouponDiscountr  vatPercentager  updater9   rk   r)  )rl   rm   r   r   r   r  
addressObjr  r  cartPackObjtotalDiscountr  r  r  r  r
  r	  r  r  r  	couponObjfinalGrandTotalr  cartPackObj2r>   s                            rG   r   zplaceOrder.post  s   RO<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H   .:
6#?#?Qijrx  sO  sO  P  P!!((J(7==?:&&**,2247&&II$$E$JPPR;=:=''...NTTV	,-
&&--xHX-Y&0#$/! 8<||7J7JW_WbWbjo7J7p
q7p85%%&7p5
q	% %j8 	?ll{# !1!1+!>x{{K&+$V,Q/
;^>*_%%,,0@0@0M,NTTVYV%@%@Rghpv  qL  qL  M  M('+&/1_ %&&O&+%$?:%-___%E"$,"#,!!+,,%%(++U%K<#|)11L $ 7
>>!))h-VE/$:5AB6%078.??@C D &"4"4iW^_
``S  O6#?#?Qhiqw  rN  rN  O  OO8 r^ 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsp   AS/  R( ,AS/ 5FS/ ;S*DS/ S/ 9D.S/ (	S'1+S"S'S/ "S''S/ /	T784T2,T72T7Nr   rt   rI   rG   r   r     s	    SOrI   r   c                       e Zd Zd Zy)orderPayc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }t        d|       |s,t        t        j                  ddt        j                        S t        j                  j                  |j                  	      j                         }t        d
|       t        j                  j                  ||      j                         }t        d|       t         j                  j                  |d      j                         }|s,t        t        j                  ddt        j                        S t#        |j$                  |j&                  |j(                        }	t        d|	       |	d   dk(  r[t        d       t*        j                  j-                  ||t/        |j(                        |	d   d   |	d   d         }
t0        j                  j                  |d      }t        d|       |D ]  }|sd|_        |j5                           d|_        t7        j8                         }||_        |j5                          t<        j                  j-                  d|j>                  j@                  jB                  j                  d       tD        j                  j-                  ddd|       t        t        jF                  d|	d   d       S t        d!       t        t        j                  |	d"   d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        jH                  t/        |      dt        jH                        cY d }~S d }~ww xY w)#Nrx   r  rL   r   ry   r{   r  zCard ID is requiredr  z
----------r  zcard-objFr   Invalid orderthePaymentObjr   Tz==2==r*   balance_transactionreceipt_url)r   r  amounttxnID
recieptUrlcartPackYou got a new order request.r  r<   is_read!Your order is placed successfullyu   تم وضع طلبك بنجاحorder)r  message_arabicnotification_typer   "Payment has been done successfullyrb   z==3==r  )%r   ro   r   r   rP   r   r.   r   r   r*   r3   r  r/   r   r0   r  r  paymentWithExistingCardr  r  r7   CustomerTransactionr   r9   r1   r    r$  r   r   	orderDateStoreNotificationsr  r2   r;   CustomerNotificationsrk   r)  )rl   rm   r   r   r   r  r  r  orderPackObjr  CustTransactionr$  r   s                rG   r   zorderPay.postm  s   *O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H lly)77
6#>#>Pefnt  oJ  oJ  K  K%%hkk%:@@B;k"!!((+g(NTTV7G##**HE*JPPR<
6#?#?Q`aio  jF  jF  G  G*7+D+DW__UaUmUmn='H%	'N)1188(Uailmy  nF  nF  jG  N[  \b  Nc  dy  Nz  FS  TZ  F[  \i  Fj8  kO||""HE"BH	*Xhommo  LJJLE"L%%/MWcWqWqWyWyWW  XC  XC  LP%  Q!!((3V  hI  ]d  ny(  z6#5#5Gk  tA  BH  tI  J  K  K	'N6#>#>P]^gPhijjE  O6#?#?Qhiqw  rN  rN  O  OOF 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsj   AN$  M" ,AN$ CN$ CN$  CN$ 8)N$ "	N!++NN!N$ N!!N$ $	O,-4O'!O,'O,Nr   rt   rI   rG   r  r  l  s    +OrI   r  c                       e Zd Zd Zy)orderPayMoysaarc           	         	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }t        j                  j                  |d	      j                         }|s,t        t        j                  d
dt        j                        S t        j                  j                  ||t!        |j"                        |j$                  j                  d      |j$                  j                  d            }t&        j                  j                  |d	      }t)        d|       |D ]  }|sd|_        |j-                           d|_        t/        j0                         }	|	|_        |j-                          t4        j                  j                  d|j6                  j8                  j:                  j                  d       t<        j                  j                  dd|       t        t        j>                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j@                  t!        |      dt        j@                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  Fr   r  reciept_url
mayosar_idr   r  r!  r#  	mayosarIDr$  Tr%  r&  r(  r)  r  r+  r   r,  )!r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r  r.  r   r9   r7   r*   r1   r3   r    r$  r   r   r/  r0  r  r2   r;   r1  rk   r)  )
rl   rm   r   r   r   r  r2  r3  r$  r   s
             rG   r   zorderPayMoysaar.post  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;##**HE*JPPR<
6#?#?Q`aio  jF  jF  G  G(0077T`hklx  mE  mE  iF  RY  R^  R^  Rb  Rb  cp  Rq  |C  |H  |H  |L  |L  MY  |Z7  [?ll!!85!A8HxX_]]_  <::<5!<$$.LVbVpVpVxVxV~V~  WB  WB  KO$  P  ''2Uip  {F'  G
&"4"4Fjk
ll)  O6#?#?Qhiqw  rN  rN  O  OO, 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AJ4  I2 ,BJ4 BJ4 CJ4 2	J1;+J,&J1'J4 ,J11J4 4	K<=4K71K<7K<Nr   rt   rI   rG   r5  r5    s    OrI   r5  c                       e Zd Zd Zy)orderPayWalletc           	         	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }t        j                  j                  |d	      j                         }|s,t        t        j                  d
dt        j                        S t        j                  j                  ||t!        |j"                        dd       t%        |j&                        t%        |j"                        z
  }t        j                  j                  |j                        j)                  |       t*        j                  j                  d|t%        |j"                        dd||j,                         t.        j                  j                  |d	      }t1        d|       |D ]  }|sd|_        |j5                           d|_        t7        j8                         }	|	|_        |j5                          t<        j                  j                  d|j>                  j@                  jB                  j                  d       tD        j                  j                  dd|       t        t        jF                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        jH                  t!        |      dt        jH                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  Fr   r  walletr9  r   wallet_amountSubtractionOrder PlacedPurchase)r\   buyerr!  reasontranscation_typebalanceorder_idr$  Tr%  r&  r(  r)  r;  r,  )%r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r  r.  r   r9   r7   r5   rA  r  Walletr  r1   r3   r    r$  r   r   r/  r0  r  r2   r;   r1  rk   r)  )
rl   rm   r   r   r   r  r2  r!  r$  r   s
             rG   r   zorderPayWallet.post  s(   "O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;##**HE*JPPR<
6#?#?Q`aio  jF  jF  G  G%%x,VYZfZrZrVs  @H  S[%  \+++,u\5M5M/NN6==;>>*111G	>>m+U<KcKcEdlz  MW  `f  r~  rF  rF  G ll!!85!A8HxX_]]_  <::<5!<$$.LVbVpVpVxVxV~V~  WB  WB  KO$  P  ''2Uip  {F'  G
&"4"4Fjk
ll3  O6#?#?Qhiqw  rN  rN  O  OO6 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AL*  K( ,BL* DL* CL* (	L'1+L"L'L* "L''L* *	M234M-'M2-M2Nr   rt   rI   rG   r=  r=    s    #OrI   r=  c                       e Zd Zd Zy)orderPayServicec           	         	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  j                  d      }|s,t        t        j                  d	dt        j                        S t        j                  j                  |d
      j                         }t        d|       |s,t        t        j                  ddt        j                        S t         j                  j#                  ||t%        |j&                        |j                  j                  d      |j                  j                  d            }t        j                  j                  d
|      j)                  d      }	t*        j                  j                  |      j)                  d       t        t        j,                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j.                  t%        |      dt        j.                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  service_invoice_idService invoice Id is requiredFservice_request_id_idis_paidr2  zInvalid Service orderr7  r8  r   servicePackr!  r#  r:  rR  rN   TrR  r   payment_statusr,  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   rQ   r3   CustomerTransactionServicer   r9   rT   r  ServiceRequestsrk   r)  )
rl   rm   r   r   r   r  rN  r2  r3  r$  s
             rG   r   zorderPayService.post  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;(()=>
6#>#>Ppqy  zU  zU  V  V ((//FXaf/gmmo<%
6#?#?Qhiqw  rN  rN  O  O/77>>]iqt  vB  vO  vO  rP  \c  \h  \h  \l  \l  mz  \{  FM  FR  FR  FV  FV  Wc  Fd>  e?$$++EM_+`ggptgu8!!%7!8??t?T
&"4"4Fjk
ll  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AI>  H< ,B I> -A(I> C%I> <	I;+I60I;1I> 6I;;I> >	K4K;KKNr   rt   rI   rG   rL  rL        OrI   rL  c                       e Zd Zd Zy)orderPayServiceWalletc           	      j   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  j                  d      }|s,t        t        j                  d	dt        j                        S t        j                  j                  |d
      j                         }t        d|       |s,t        t        j                  ddt        j                        S t         j                  j#                  ||t%        |j&                        dd      }t)        |j*                        t)        |j&                        z
  }	t        j                  j                  |j                        j-                  |	       t.        j                  j#                  d|t)        |j&                        dd|	|       t        j                  j                  d
|      j-                  d      }
t0        j                  j                  |      j-                  d       t        t        j2                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j4                  t%        |      dt        j4                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  rN  rO  FrP  r2  r  r?  rS  r   r@  rB  rC  rD  )r\   rE  r!  rF  rG  rH  r  rU  TrV  rW  r,  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   rQ   r3   rY  r   r9   rT   r5   rA  r  rJ  rZ  rk   r)  )rl   rm   r   r   r   r  rN  r2  r3  r!  r$  s              rG   r   zorderPayServiceWallet.post  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;(()=>
6#>#>Ppqy  zU  zU  V  V ((//FXaf/gmmo<%
6#?#?Q`aio  jF  jF  G  G/77>>]iqt  vB  vO  vO  rP  \d  ow>  x?+++,u\5N5N/OO6==;>>*111G	>>m+U<KdKdEem{  NX  ag  uG  H $$++EM_+`ggptgu8!!%7!8??t?T
&"4"4Fjk
ll'  O6#?#?Qhiqw  rN  rN  O  OO* 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AK*  J( ,B K* -A(K* EK* (	K'1+K"K'K* "K''K* *	L234L-'L2-L2Nr   rt   rI   rG   r]  r]        OrI   r]  c                       e Zd Zd Zy)cutomerOrderListingc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |d      j                  d	      }g }|D ]  }t        j                  j                  ||j                  d
      j                         }i }	|j                  |	d<   |j                  |	d<   |j                   |	d<   ||	d<   |j"                  |	d<   |j$                  |	d<   t'        |j$                         d|	d<   t)        j*                  |j,                  j.                  j0                        |	d<   |j2                  |	d<   |j5                  |	        t        t        j6                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j8                  t;        |      dt        j8                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   Tr   r   r   r  r    Idr  r7   	orderItemr/  delivery_statusPendingorderStatus
orderImageisRatedra   rb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r1   r  rY  r   r7   r/  rf  r3   r   r   r  r2   r   is_ratedr8   rk   r)  r9   )
rl   rm   r   r   r   orderListPackr>   theOrder
totalCountr  s
             rG   ro   zcutomerOrderListing.get  s*   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H $$++XT+JSSTYZ=7 x$$hx?O?OW[$\bbdJGKKGDM!))GI%11GM%GK#--GK!)!9!9G	(
"
"#&GM,,X-C-C-K-K-R-RSGL!**GINN7 ! &"4"4iW^_
``'  O6#?#?Qhiqw  rN  rN  O  OO( 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsO   AH  F? ,EH ?	G>+G93G>4H 9G>>H 	I	
4I>I	I	Nrp   rt   rI   rG   ra  ra    s    OrI   ra  c                       e Zd Zd Zy)customerOrderDetailc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }t        d|       |s,t        t        j                  ddt        j                        S t        j                  j                  ||d	
      j                         }t        d|       t        j                  j                  ||d	
      j                         }t        d|       |s,t        t        j                  ddt        j                        S i }t!        |j"                        j                  |d<   |j$                  |d<   |j&                  |d<   ||d<   |j(                  |d<   |j*                  |d<   |j,                  |d<   |j.                  |d<   |j0                  |d<   d|d<   |j2                  |d<   |j4                  |d<   |j6                  j8                  j:                  |d<   t        j                  j                  ||d	
      }	t        d|	       g }
i }|	D ]  }t        d|       |j8                  j<                  |j8                  j>                  tA        jB                  |j8                  j:                        |j8                  jD                  j<                  |j8                  jD                  jF                  d}tI        |j,                        }|}|jJ                  |d<   tM        |d      |d<   |
jO                  |        ||
d }t        t        jP                  d!|d"      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        jR                  tU        |      dt        jR                        cY d }~S d }~ww xY w)#Nrx   r  rL   r   ry   r{   rI  zOrder Id is requiredTrc  	theordersrn  zOrder list empty
deliver_to
order_dateorder_itemsdelivery_charges	sub_totalrW  rf  r(   rg  order_statusr   taxrE   cartData)r   r   r  r<   r   r  z.1frT   )summaryr  ra   rb   )+r   ro   r   r   rP   r   r.   r   r   r*   r3   r  r/   r0   r1   rY  GetAddressDatar  r  r/  shippingCharger  r7   rf  r  rk  r  r  r2   r   r   r   r   r   r;   r   r5   r  r  r8   rk   r)  r9   )rl   rm   r   r   r   rI  	theOrdersrn  summaryDetailrz  r>   theSerialObjectrE   productDatarW  r*   s                   rG   r   zcustomerOrderDetail.post=  s   @O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H llz*8H
6#>#>Pfgou  pK  pK  L  L  ''(RV'W]]_9Y##Xhd#SYY[:j!
6#>#>Pbckq  lG  lG  H  H=!/	0I0I!J!O!O=(00=!*!4!4=",='0'?'?=#$ ) 8 8=%11=&/&?&?="#(77=#,= '00=#11=#1199@@=
 ll!!8HD!Q8H7?t	&,,//<<44$$T\\%8%89""%%##66K $""#EO'+'8'8OO$&,U5&9ON#NN?#   4 &"4"4iW[\
]]q  O6#?#?Qhiqw  rN  rN  O  OOr 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AO  M? ,AO B%O 'HO ?	N>+N93N>4O 9N>>O 	P	
4P>P	P	Nr   rt   rI   rG   rp  rp  <  s	    AOrI   rp  c                       e Zd Zd Zy)	getOffersc                    	 |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  ddd      j                  dd	d
      j                         }g }|dk(  r/|D ])  }t        d       |d   |d
   d}|j                  |       + n#|D ]  }|d   |d	   d}|j                  |         t
        j                  j                  ddd      j                  d      d   j                  }	| j                  j                  j                  d      }
| j                  j                  j                  d      }| j                  j                  j                  d      }| j                  j                  j                  d      }| j                  j                  j                  d      }t        d|       t        d|       t        d|       t        d|       |dk(  rot               }|r*|j!                  t        |      t        j"                         |r,|j!                  t        ||f      t        j"                         |
dk(  r?t        d       t
        j                  j                  |ddd      j                  d      }n|
dk(  r?t        d       t
        j                  j                  |ddd      j                  d      }n|
dk(  r?t        d       t
        j                  j                  |ddd      j                  d      }nAt        d       t
        j                  j                  |ddd      j                  d       }n|
dk(  r=t        d!       t
        j                  j                  ddd      j                  d      }n|
dk(  r=t        d"       t
        j                  j                  ddd      j                  d      }n~|
dk(  r=t        d#       t
        j                  j                  ddd      j                  d      }n<t        d$       t
        j                  j                  ddd      j                  d       }| j                  j                  j                  d%      }|s,t%        t&        j(                  d&d't&        j(                  (      S | j                  j                  j                  d)      }|s,t%        t&        j(                  d*d't&        j(                  (      S t+        ||      }	 |j-                  |      }g }|dk(  r*|D ]"  }t4        j                  j                  |j6                  |+      j9                         }|rd}nd,}||j6                  |j:                  |j<                  j>                  |j@                  j>                  |jB                  |jD                  jF                  |jH                  |j                  |jJ                  tM        jN                  |jP                        |jR                  |jT                  jV                  |jX                  d-}|j                  |       % n=|D ]7  }t4        j                  j                  |j6                  |+      j9                         }|rd}nd,}||j6                  |jZ                  |j<                  j\                  |j@                  j\                  |j^                  |jD                  j`                  |jH                  |jJ                  |j                  tM        jN                  |jP                        |jR                  |jT                  jb                  |jT                  jd                  |jX                  d.}|j                  |       : t%        t&        jf                  d/||r|nd|j2                  ti        |      ||	d0      S # t.        $ r |j-                  d      }Y t0        $ r |j-                  |j2                        }Y w xY w# tj        $ r?}t%        t&        jl                  to        |      d't&        jl                  (      cY d }~S d }~ww xY w)1Nrx   ry   r   r[   r
   Tr   r   r   maincategory__id#maincategory__category_name_english"maincategory__category_name_arabicr^   z---------------------------r=  r>  -price_discountry  r=  price_start	price_endfilter_datayes)rc  )price_discount__rangediscount_percentagedissssssssssssz-offer_discountrz  higssssssssssssr  lowsssssssssssssssr   norrrrrrrrrrrr   zdissssssssssss 2zhigssssssssssss 3zlowsssssssssssssss 4znorrrrrrrrrrr 5rH  rI  rL   r   rJ  rK  r   F)r   r   r   r   r   r~   r   r   r   r   r   r<   r   r   r   ra   )r   r   r*   rH  rU  rV  main_categoryrz  )8r   ro   r   r.   rd   r   r/   valuesdistinctr3   r8   r   r   rm   re   r   addANDr   r   rP   r   rH  r   r   rZ  r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r   r   r   r   r   r   r   rk   r[  r   r)  r9   )rl   rm   r   r   r[   product_obj_catr  r2   r   rz  ry  r=  r  r  r  lookupsr   rH  rJ  r]  r>   r   r   r   s                           rG   ro   zgetOffers.get  s   SO<<##$89=||m4HHooj)8%%,,aSW`d,ellm  Af  gK  L  U  U  W?=$"
()/0 DEW '" # #/0 EFW '" # $$++QRV_c+dmmn  A  BC  D  S  S=||((,,[99**..}=;**..}=;||((,,[99**..}=;{#{#y!{# UcG[[;/7[[+i)@A155I))
##**7AY]fj*ktt  vG  H[	o	%
##**7AY]fj*ktt  vG  H[	n	$
 ##**7AY]fj*ktt  vF  G[ ?##**7AY]fj*kttuz{[))
##**AQU^b*cllm~[	o	%
##**AQU^b*cllm~[	n	$
!"##**AQU^b*cllm}~[
##**AQU^b*cllmrs[ ,,
#
#
'
'
/4
6#>#>Plmu{  vQ  vQ  R  R<<,,00A=
6#>#>Pnow}  xS  xS  T  Tm496..&K
 7$''..'**(.SYY[]ii::22))>>''<<..mm--mm--/!!==22..W  ^^G- 0 ''..'**(.SYY[]ii::33))??''==//mm..mm--/!!}}##==33..W" ^^G/ 0 6#5#5yX_osgkyz  JS  J]  J]  jm  ny  jz  KX  iv  w  x  xm  $..#K
 6..!4!45K6j 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs\   S`< A`< /`< <_5 J'`< 5`9`< #`95`< 8`99`< <	b4a?9b?bNrp   rt   rI   rG   r  r    s	    TOrI   r  c                       e Zd Zd Zd Zy)filterOfferSectionc                 :   	 |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  ddd      j                  dd	      j                         }t        d
|       g }|dk(  r$|D ]  }|d   |d	   d}|j                  |         n#|D ]  }|d   |d	   d}|j                  |         t
        j                  j                  ddd      j                  d      d   j                  }	t        |	       t        t        j                  d||	d      S # t         $ r?}
t        t        j"                  t%        |
      dt        j"                        cY d }
~
S d }
~
ww xY w)Nrx   ry   r   r[   r
   Tr  r  r  r   r^   r  r  ra   )r   r   r*   rz  rL   r   )r   ro   r   r.   rd   r   r/   r  r  r3   r8   r   r   r   r   rk   r   r)  r9   )rl   rm   r   r   r[   r   r  r2   r   rz  r   s              rG   ro   zfilterOfferSection.get  s   O<<##$89=||m4HHooj)8!!((!t\`(ahhi{  }b  c  l  l  n;{#=$/0 EFW '"  /0 EFW '"  $$++QRV_c+dmmn  A  BC  D  S  S=
6#5#5yXe  wD  E  F  F	 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs   EE 	F4FFFc                 n
   	 |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  ddd      }|j                  j                  d      }|r#t
        j                  j                  ddd|	      }|j                  j                  d
      }|j                  j                  d      }|r%t
        j                  j                  ||fddd      }|r(|r&t
        j                  j                  ||f|ddd      }|j                  j                  d      }	|	s,t        t        j                  ddt        j                        S |j                  j                  d      }
|
s,t        t        j                  ddt        j                        S t        ||
      }	 |j                  |	      }g }|dk(  r?|D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |j&                  |j(                  j*                  |j,                  j*                  |j.                  |j0                  j2                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jF                  |jH                  d}|jK                  |       : n=|D ]7  }t         j                  j                  |j"                  |      j%                         }|rd}nd}||j"                  |jL                  |j(                  jN                  |j,                  jN                  |jP                  |j0                  jR                  |j4                  |j6                  |j8                  t;        j<                  |j>                        |j@                  |jB                  jD                  |jB                  jT                  |jH                  d}|jK                  |       : t        t        jV                  d||	r|	nd|j                  tY        |      d      S # t        $ r |j                  d      }Y t        $ r |j                  |j                        }Y w xY w# tZ        $ r?}t        t        j\                  t_        |      dt        j\                        cY d }~S d }~ww xY w)Nrx   ry   r   r[   r
   Tr  r=  )r   r   r   rc  r  r  )r  r   r   r   )r  rc  r   r   r   rH  rI  rL   r   rJ  rK  r^   r   Fr   ra   rf  )0r   ro   r   r.   rd   r   r/   r*   r   r   rP   r   rH  r   r   rZ  r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r   r   r8   r   r   r   r   r   rk   r[  r   r)  r9   )rl   rm   r   r   r[   r   r=  r  r  rH  rJ  r]  r>   r2   r   r   r   r   s                     rG   r   zfilterOfferSection.post8  s   TO<<##$89=||m4HHooj)8!!((!t\`(a;!!-0;""))1PT]at)  AK!!-0;||,9""))Y@Wij  C  LP)  QKi""))Y@Wju  HI  ]a  jn)  oK
,,

6
"4
6#>#>Plmu{  vQ  vQ  R  R<<##O4=
6#>#>Pnow}  xS  xS  T  Tm496..&K
 7$''..'**(.SYY[]ii::22))>>''<<..mm--mm--/!!}}##==22..W" ^^G/ 2 ''..'**(.SYY[]ii::33))??''==//mm..mm--/!!}}##==33..W" ^^G/ 0 6#5#5yX_osgkyz  JS  J]  J]  jm  ny  jz  {  |  |o  $..#K
 6..!4!45K6n 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs\   F S, AS, S, R% *J:S, %S)?S, #S)%S, (S))S, ,	T454T/)T4/T4Nrq   rr   rs   ro   r   rt   rI   rG   r  r    s    O@UOrI   r  c                       e Zd Zd Zy)getServiceProvidersc                 >   |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }| j
                  j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |d	
      }|s,t        t        j                  ddt        j                        S g }|dk(  r|D ]  }|j                  j                  |j                  j                  |j                  j                  |j                  j                   |j                  j"                  d}	|j%                  |	        n|D ]  }|j                  j                  |j                  j&                  |j                  j(                  |j                  j"                  |j                  j                   d}	|j%                  |	        t        t        j*                  d|d      S )Nrx   ry   r   r[   r  Service Id is requiredrL   r   T)rR   r   rL  r^   )r<   r   r   r   r   )r<   r   r   r   r   ra   rb   )r   ro   r   r.   rd   rm   re   r   r   rP   rX  r/   r;   r   r   r   r   r   r8   r   r   rk   )
rl   rm   r   r   r[   r  
stores_objr>   r;   r   s
             rG   ro   zgetServiceProviders.get  s   ,,""#78-ll]388__Z((||((,,\:*	
&"="=Oghpv  qL  qL  M  M$$++j+M*	
&"="=O_`hn  iD  iD  E  E'u;;00=={{""++((G NN7  u;;11>>++(({{""G NN7  
&"4"4iW^_	``rI   Nrp   rt   rI   rG   r  r    s    $arI   r  c                       e Zd Zd Zd Zy)stonePolishingRequestc                    	 |j                   j                  d      }|j                  d   }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }| j                  j                  j                  d      }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  |d
d      }g }|dk(  r2|D ],  }	|	j                  |	j                  d}
|j!                  |
       . n1|D ],  }	|	j                  |	j"                  d}
|j!                  |
       . t        t        j$                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j&                  t)        |      dt        j&                        cY d }~S d }~ww xY w)Nrx   r[   r  rL   r   ry   r{   r<   Store Id is requiredTr
   r<   r   r   r^   rk  
stone_typera   rb   )r   ro   rd   r   r   rP   r   r.   r   r   rm   re   	StoneTyper/   r   stone_type_arabicr8   stone_type_englishrk   r)  r9   )rl   rm   r   r[   r   r   r<   r   r>   stonesr   s              rG   ro   zstonePolishingRequest.get  s    O<<##$89=ooj)8
6#>#>Pkltz  uP  uP  Q  QO  } 5H ll''++J78
6#>#>Pfgou  pK  pK  L  L""))XPT]^)_:7$,,W ^^G  --W ^^G  6#5#5yX_`
aa/  O6#?#?Qhiqw  rN  rN  O  OO0 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOV   AF9  E7 ;AF9 B(F9 7	F6 +F1+F6,F9 1F66F9 9	H4G<6H<Hc           
      	   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  j                  d      }|s,t        t        j                  d	dt        j                        S |j                  j                  d
      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }t        d|       |s,t        t        j                  ddt        j                        S t        j                  j                  ||dd      j                         }	|j                  j                  d      }
|
s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t         j                  j                  |      j                         }t                t"        j                  j%                  |||||	|
||      }|j                  j                  d      rct'        |j                  j                  d            }t)        t*        j,                        dz   |z   }t)        |      |_        |j1                          t2        j                  j%                  d|d       t        t        j4                  d d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j6                  t)        |      dt        j6                        cY d }~S d }~ww xY w)!Nrx   r  rL   r   ry   r{   r  r  r  r<   r  r  StttttttttttttttttttttttttttttStone type is requiredTr
   )r   r<   r   r   rq  Size is requiredr!  zAmount is requirednoteszNotes is requiredshapezShape is requiredr   )r<   rR   r   r  r  rq  r!  r  imager  z0You got a new order request for stone polishing.r&  "Service request send successfullly)r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r3   r  r	  rZ  r   uploadServiceRequestr9   r	   r#  r  r$  r0  rk   r)  )rl   rm   r   r   r   r  r  r<   rk  r  rq  r!  r  r  service_obj_idr  r-  s                    rG   r   zstonePolishingRequest.post  s5   -O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;  .:
6#>#>Phiqw  rM  rM  N  Nllz*8
6#>#>Pfgou  pK  pK  L  Lll|,8	)(3
6#>#>Phiqw  rM  rM  N  N""))X\`ij)kqqs:
,,

6
"4
6#>#>Pbckq  lG  lG  H  HLLX&6
6#>#>Pdems  nI  nI  J  J<<G$5
6#>#>Pcdlr  mH  mH  I  I<<G$5
6#>#>Pcdlr  mH  mH  I  I$$++z+:@@B>7 ((//8P^it  |A  MW  ]a  io  v{/  |;llw!',,"2"27";<W""#C'/W7|[$$.`jr{$  A
6#5#5Gkl
mmK  O6#?#?Qhiqw  rN  rN  O  OOL 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs   AP=  O; ,B P= -AP= 6AP= A9P= AP= AP= AP=  DP= ;	P:+P5/P:0P= 5P::P= =	R4R :R RNr  rt   rI   rG   r  r    s    !OJ.OrI   r  c                       e Zd Zd Zd Zy)extractionRequestc                      y Nrt   rl   rm   s     rG   ro   zextractionRequest.get	      rI   c                 Z   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|j                  j                  d      }|s,t        t        j                  d	dt        j                        S |j                  j                  d
      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }	|	s,t        t        j                  ddt        j                        S |j                  j                  d      }
|
s,t        t        j                  ddt        j                        S t        j                  j                  |      j                         }t        j                  j!                  |||||	|
      }|j                  j                  d      rct#        |j                  j                  d            }t%        t&        j(                        dz   |z   }t%        |      |_        |j-                          t.        j                  j!                  d|d       t        t        j0                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j2                  t%        |      dt        j2                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r  r<   r  number_of_stonezNumber of stone is requiredweight_of_each_stonezWeight of stone is requiredr  r   )r<   rR   r   number_of_stonesweight_of_stoner  r  r  z3You got a new order request for extraction request.Tr&  r  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r	  rZ  r   r  r9   r	   r#  r  r$  r0  rk   r)  )rl   rm   r   r   r   r  r  r<   r  r  r  r  r  r-  s                 rG   r   zextractionRequest.post	  sh   #O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;  .:
6#>#>Phiqw  rM  rM  N  Nllz*8
6#>#>Pfgou  pK  pK  L  L\\%%&78?
6#>#>Pmnv|  wR  wR  S  S!,,**+AB
6#>#>Pmnv|  wR  wR  S  S<<G$5
6#>#>Pmnv|  wR  wR  S  S$$++z+:@@B> ((//8P^it  GV  g{  BG/  H;llw!',,"2"27";<W""#C'/W7|[$$.cmu  C$  D
6#5#5Gkl
mm7  O6#?#?Qhiqw  rN  rN  O  OO8 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsr   AM"  L  ,B M" -AM" 6AM" ?AM" AM" DM"  	M)+MMM" MM" "	N*+4N%N*%N*Nr  rt   rI   rG   r  r  	  s    $OrI   r  c                       e Zd Zd Zd Zy)accessoriesMaintenanceRequestc                    	 |j                   j                  d      }|j                  d   }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }| j                  j                  j                  d      }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  |d
d
      }g }|dk(  r2|D ],  }	|	j                  |	j                  d}
|j!                  |
       . n1|D ],  }	|	j                  |	j"                  d}
|j!                  |
       . t        t        j$                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j&                  t)        |      dt        j&                        cY d }~S d }~ww xY w)Nrx   r[   r  rL   r   ry   r{   r<   zStore ID  is requiredTr<   r   r   r^   r  service_typera   rb   r   ro   rd   r   r   rP   r   r.   r   r   rm   re   ServiceTyper/   r   service_type_arabicr8   service_type_englishrk   r)  r9   rl   rm   r   r[   r   r   r<   service_type_objr>   rS   r   s              rG   ro   z!accessoriesMaintenanceRequest.get7	  s   O<<##$89=ooj)8
6#>#>Pkltz  uP  uP  Q  QO  } 5H ll''++J78
6#>#>Pghpv  qL  qL  M  M!))00($bf0g7$#ZZ11W ^^G $ $ZZ22W ^^G $ 6#5#5yX_`
aa-  O6#?#?Qhiqw  rN  rN  O  OO. 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOr  c                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  j                  d	      }|s,t        t        j                  d
dt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  ||dd      j                         }	|j                  j                  d      }
|
s,t        t        j                  ddt        j                        S t        j                  j                  |      j                         }t         j                  j#                  ||||	|
      }|j                  j                  d      rct%        |j                  j                  d            }t'        t(        j*                        dz   |z   }t'        |      |_        |j/                          t0        j                  j#                  d|d       t        t        j2                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j4                  t'        |      dt        j4                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  No customer foundr  r  r<   r  r  Service type is requiredTr   r<   r   r   r  zNote is requiredr   r<   rR   r   r  r  r  r  z9You got a new order request for accessories maintainance.r&  r  r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r  r	  rZ  r   r  r9   r	   r#  r  r$  r0  rk   r)  )rl   rm   r   r   r   r  r  r<   service_type_idr  r  r  r  r-  s                 rG   r   z"accessoriesMaintenanceRequest.postY	  st   "O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I  .:
6#>#>Phiqw  rM  rM  N  Nllz*8
6#>#>Pfgou  pK  pK  L  L\\%%n5?
6#>#>Pjksy  tO  tO  P  P%%,,Y]qu,v||~<<<G$5
6#>#>Pbckq  lG  lG  H  H$$++z+:@@B> ((//8P^it  CO  V[/  \;llw !1!1'!:;G!!"3&w.G'lK$$.is{  EI$  J
6#5#5Gkl
mm5  O6#?#?Qhiqw  rN  rN  O  OO6 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOr   AM7  L5 ,A%M7 AM7 AM7 $AM7 -A9M7 'DM7 5	M4>+M/)M4*M7 /M44M7 7	N? 4N:4N?:N?Nr  rt   rI   rG   r  r  6	  s     OD#OrI   r  c                       e Zd Zd Zd Zy)watchesMaintenanceRequestc                    	 |j                   j                  d      }|j                  d   }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }| j                  j                  j                  d      }|s,t        t        j
                  ddt        j
                        S t        j                  j                  |d	d	
      }g }|dk(  r2|D ],  }	|	j                  |	j                  d}
|j!                  |
       . n1|D ],  }	|	j                  |	j"                  d}
|j!                  |
       . t        t        j$                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j&                  t)        |      dt        j&                        cY d }~S d }~ww xY w)Nrx   r[   r  rL   r   ry   r{   r<   Tr  r^   r  ra   rb   r  r  s              rG   ro   zwatchesMaintenanceRequest.get	  s   O<<##$89=ooj)8
6#>#>Pkltz  uP  uP  Q  QO  } 5H ll''++J78
6#>#>Pghpv  qL  qL  M  M!))00($bf0g7$#JJ11W ^^G $ $JJ22W ^^G $ 6#5#5yX_`
aa+  O6#?#?Qhiqw  rN  rN  O  OO, 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOr  c                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  j                  d	      }|s,t        t        j                  d
dt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  ||dd      j                         }	|j                  j                  d      }
|
s,t        t        j                  ddt        j                        S t        j                  j                  |      j                         }t         j                  j#                  ||||	|
      }|j                  j                  d      rct%        |j                  j                  d            }t'        t(        j*                        dz   |z   }t'        |      |_        |j/                          t0        j                  j#                  d|d       t        t        j2                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j4                  t'        |      dt        j4                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r  r  r<   r  r  r  Tr  r  r   r  r  r  z3You got a new order request for watch maintainance.r&  r  r  )rl   rm   r   r   r   r  r  r<   r  r  r  r  r  r-  s                 rG   r   zwatchesMaintenanceRequest.post	  st   "O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I  .:
6#>#>Phiqw  rM  rM  N  Nllz*8
6#>#>Pfgou  pK  pK  L  L,,"">2<
6#>#>Pjksy  tO  tO  P  P ((//<Y]qu/v||~?<<G$5
6#>#>Pjksy  tO  tO  P  P$$++z+:@@B> ((//8P^it  CR  Y^/  _;llw !1!1'!:;G!!"3&w.G'lK$$.cmu  C$  D
6#5#5Gkl
mm5  O6#?#?Qhiqw  rN  rN  O  OO6 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOr  Nr  rt   rI   rG   r  r  ~	  s    OB#OrI   r  c                       e Zd Zd Zd Zy)detailingAccessoriesRequestc                 b   	 |j                   j                  d      }|j                  d   }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }| j                  j                  j                  d      }|s,t        t        j
                  ddt        j
                        S t        j                  j                  |d	d	
      }|dk(  rg }|D ],  }	|	j                  |	j                  d}
|j!                  |
       . t"        j                  j                  |d	d      }g }|D ],  }|j                  |j$                  d}
|j!                  |
       . ng }|D ],  }	|	j                  |	j&                  d}
|j!                  |
       . t"        j                  j                  |d	d      }g }|D ],  }|j                  |j(                  d}
|j!                  |
       . t        t        j*                  d||d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Nrx   r[   r  rL   r   ry   r{   r<   Tr  r^   )r  service_modelr
   r  r  ra   )r   r   service_data
stone_data)r   ro   rd   r   r   rP   r   r.   r   r   rm   re   ServiceModelr/   r   service_model_arabicr8   r  r  service_model_englishr  rk   r)  r9   )rl   rm   r   r[   r   r   r<   r  r  rS   r   r   	stoneDatar  s                 rG   ro   zdetailingAccessoriesRequest.get	  s   2O<<##$89=ooj)8
6#>#>Pkltz  uP  uP  Q  QO||m4H ll''++J78
6#>#>Pghpv  qL  qL  M  M''..TT / = $L ::22W ! ! ##**hQU^_*`JI,,W g  L ::33W ! ! ##**hQU^_*`JI--W g  6#5#5y`l  {D  E  F  FS  O6#?#?Qhiqw  rN  rN  O  OOT 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AI&  H$ ;AI& EI& $	I#-+II#I& I##I& &	J./4J)#J.)J.c           	      
	   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  j                  d	      }|s,t        t        j                  d
dt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |dd      j                         }|j                  j                  d      }	|	s,t        t        j                  ddt        j                        S t        j                  j                  |	dd      j                         }
|j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t         j                  j                  |      j                         }t"        j                  j%                  ||||||
|      }|j                  j                  d      rct'        |j                  j                  d            }t)        t*        j,                        dz   |z   }t)        |      |_        |j1                          t2        j                  j%                  d|d       t        t        j4                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j6                  t)        |      dt        j6                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r  r  r<   r  r  zService model is requiredTr
   )r   r   r   r  r  r  r  rq  r  r   )r<   rR   r   r  r  r  rq  r  r  z6You got a new order request for detailing accessories.r&  r  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r  r  r	  rZ  r   r  r9   r	   r#  r  r$  r0  rk   r)  )rl   rm   r   r   r   r  r  r<   r  stone_type_idstone_type_objr  rq  r  r  r-  s                   rG   r   z detailingAccessoriesRequest.post	  s4   ,O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I  .:
6#>#>Phiqw  rM  rM  N  Nllz*8
6#>#>Pfgou  pK  pK  L  L  1:
6#>#>Pkltz  uP  uP  Q  Q''..JQU^_.`ffh=<<##L1=
6#>#>Phiqw  rM  rM  N  N%%,,-RV_`,aggi><<G$5
6#>#>Pjksy  tO  tO  P  P
,,

6
"4
6#>#>Pbckq  lG  lG  H  H$$++z+:@@B> ((//8P^it  DQ  X]  iw  }A/  B;llw !1!1'!:;G!!"3&w.G'lK$$.fpx  BF$  G
6#5#5Gkl
mmI  O6#?#?Qhiqw  rN  rN  O  OOJ 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs   AP:  O8 ,A%P: AP: AP: $AP: -A8P: &A8P: AP: (DP: 8	P7+P2,P7-P: 2P77P: :	R4Q=7R=RNr  rt   rI   rG   r  r  	  s    3Oj-OrI   r  c                       e Zd Zd Zd Zy)giftArrangementRequestc                    	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }| j                  j                  j                  d      }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  d
d
      }g }|dk(  rH|D ]B  }	|	j                  |	j                  |	j                   |	j"                  d}
|j%                  |
       D nG|D ]B  }	|	j                  |	j&                  |	j                   |	j"                  d}
|j%                  |
       D t(        j                  j                  d
d
      }g }|dk(  rH|D ]B  }|j                  |j*                  |j,                  |j.                  d}|j%                  |       D nG|D ]B  }|j                  |j0                  |j,                  |j.                  d}|j%                  |       D t        t        j2                  d||d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j4                  t7        |      dt        j4                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r<   r  T)r   r   r^   )box_idbox_name	box_imagebox_cost)packaging_idpackaging_namepackaging_imagepackaging_costra   )r   r   giftdatapackagingdata)rd   r   ro   r   r   rP   r   r.   r   r   rm   re   GiftBoxTyper/   r   box_name_arabicr  r  r8   box_name_englishGiftPackingTypepackaging_name_arabicr  r  packaging_name_englishrk   r)  r9   )rl   rm   r[   r   r   r   r<   giftobjgiftDatagiftr   packagingobjpackagingDatapackingalldata2s                  rG   ro   zgiftArrangementRequest.get+
  s   8Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H ll''++J78
6#>#>Pfgou  pK  pK  L  L  ''tt'L78$ww%%..	W __W  ww&&..	W __W  "))00PT0U<=$ZZ44//--	X (#    ZZ55//--	X (#   6#5#5y\d  vC  D  E  E_  O6#?#?Qhiqw  rN  rN  O  OO` 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AJ  I ;AJ FJ 	J#+JJJ JJ 	K$%4KK$K$c           	         	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  j                  d	      }|s,t        t        j                  d
dt        j                        S t        j                  j                  |      j                         }|j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }	|	s,t        t        j                  ddt        j                        S t        j                  j                  |	dd      j                         }
|j                  j                  d      }|s,t        t        j                  ddt        j                        S t         j                  j                  |dd      j                         }|j                  j                  d      }|s,t        t        j                  ddt        j                        S |j                  j                  d      }|s,t        t        j                  ddt        j                        S t"        j                  j%                  ||||
|||       t&        j                  j%                  d|d       t        t        j(                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j*                  t-        |      dt        j*                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r  r  r   r<   r  box_typezBox type is requiredT)r   r   r   r  zPackaging ID is requiredgift_sentencezGift sentence is requiredr  znotes is required)rR   r<   r   gift_boxgift_packaginggift_card_sentencer  z/You got a new order request for gift arrangemntr&  zRequest send succesfully)r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r	  r  r  rZ  r   r0  rk   r)  r9   )rl   rm   r   r   r   r  r  r  r<   r  r  r  packaging_typer  r  s                  rG   r   zgiftArrangementRequest.postg
  s   %O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I  .:
6#>#>Phiqw  rM  rM  N  N$$++z+:@@B>llz*8
6#>#>Pfgou  pK  pK  L  L\\j)6
6#>#>Pfgou  pK  pK  L  L!!((F$RV(W]]_8,,"">2<
6#>#>Pjksy  tO  tO  P  P#++22l$bf2gmmo><<##O4=
6#>#>Pkltz  uP  uP  Q  Q<<G$5
6#>#>Pcdlr  mH  mH  I  I!!NHVaks  DR  fs  z!  @$$._iqz~$
6#5#5Gab
cc;  O6#?#?Qhiqw  rN  rN  O  OO< 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs   AN<  M: ,A%N< AN< A6N< AN< A8N< A8N< AN< A#N< :	N9+N4.N9/N< 4N99N< <	P4O?9P?PNr  rt   rI   rG   r  r  *
  s    9Ox&OrI   r  c                       e Zd Zd Zy)serviceAppliedListc                    	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  |
      j                  d      }t!        |       g }|dk(  r|D ]  }	|	j"                  r|	j"                  }
nd }
|	j$                  dk(  rd}n|	j$                  dk(  rd}nd}|	j                  |	j&                  j(                  |	j*                  j,                  |	j.                  |
|	j0                  ||	j2                  |	j4                  d	}|j7                  |        n|D ]  }	|	j"                  r|	j"                  }
nd }
|	j$                  dk(  rd}n|	j$                  dk(  rd}nd}|	j                  |	j&                  j(                  |	j*                  j8                  |	j.                  |	j0                  |
||	j2                  |	j4                  d	}|j7                  |        t        t        j:                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j<                  t?        |      dt        j<                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r  r  r  r   r^   r   rg  r
   AcceptedDeclined)	
request_idr   r  request_dater  invoice_generatedr   rR  rf  )	r  r   r  r  r  r  r   rR  rf  ra   rb   ) rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rZ  r   r3   r  service_statusr;   r   rR   r
  
start_dater  rX  rf  r8   r  rk   r)  r9   )rl   rm   r[   r   r   r   r  r  r>   rS   r  status_infor   s                rG   ro   zserviceAppliedList.get
  s   GOooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I ((///ENNuU;7$mmee!#k

 
 A
%kk ::==33'';;''!33&&//W ^^G3 6 mmee!#k

 
 A
%kk ::==33''<<''!33&&//W ^^G3 4 6#5#5yX_`
aa}  O6#?#?Qhiqw  rN  rN  O  OO~ 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AL   J> ;A%L  !GL  >	K=+K82K=3L  8K==L   	M	4M=MMNrp   rt   rI   rG   r  r  
  s	    HOrI   r  c                       e Zd Zd Zy)servicesAppliedDetailsc                 
   	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S | j                  j                  j                  d
      }|s,t        t        j
                  ddt        j
                        S t         j                  j                  ||      j                         }|s,t        t        j
                  ddt        j
                        S |j"                  r3|dk(  r|j"                  j$                  }	n|j"                  j&                  }	nd }	|j(                  r|j(                  }
nd }
|j*                  r|j*                  }nd }|j,                  r|j,                  }nd }|j.                  r|j.                  }nd }|j0                  r|j0                  }nd }|j2                  r|j2                  }nd }|j4                  r|j4                  }nd }|j6                  r3|dk(  r|j6                  j8                  }n|j6                  j:                  }nd }|j<                  r|j<                  }nd }|j>                  r3|dk(  r|j>                  j@                  }n|j>                  jB                  }nd }|jD                  r3|dk(  r|jD                  jF                  }n|jD                  jH                  }nd }|jJ                  r|jJ                  }nd }|dk(  r|jL                  jN                  }n|jL                  jP                  }|dk(  r|jR                  jT                  }n|jR                  jV                  }|jX                  dk(  rd}n|jX                  dk(  rd}nd}i d|j                  d|jR                  j                  d|d|jL                  jZ                  d|jL                  jZ                  d|jL                  j\                  d|d|	d|
d|d|d|d|d |d!|d"|d#|||||d$}t        t        j^                  d%|d&      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j`                  tc        |      dt        j`                        cY d }~S d }~ww xY w)'Nr[   rx   r  rL   r   ry   r{   r  r  rN   zService request ID is requiredr   r   zService not foundr^   r   rg  r
   r  r  r  r  r   store_addressstore_countryr  r  rq  r  r!  r  r  r  r  r  r  )r	  r
  r  r  ra   rb   )2rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rm   re   rZ  r  r  r  rq  r  r!  r  r  r  r  r  r  r  r  r	  r  r  r
  r  r  r  r;   r   r   rR   r
  r  r  r   countryrk   r)  r9   )rl   rm   r[   r   r   r   r  rN   rS   r  rq  r  r!  r  r  r  r  r  r  r	  r
  r  r   service_name_appor  r   s                             rG   ro   zservicesAppliedDetails.get
  sb   QOooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I,,33778LM
6#>#>Ppqy  zU  zU  V  V$$++[DV+W]]_7
6#>#>Pcdlr  mH  mH  I  I4$$66Z$$77ZJll<<DDmmMMEEnn^^FFmmMMEEmmMMEE// --OO4((<<\((==\L))MM 4  00X  11XH 4,,BB^,,CC^ N   33$00J11J$))==))>>!K!#KK""%%  W]]**	
 W]]** W]]** %  4 E V E E ' o  <!" M#$ #+ +7. 6#5#5yX_`
aaQ  O6#?#?Qhiqw  rN  rN  O  OOR 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsd   AT  S ;A%T !AT 4AT L3T 	T+S?9T:T ?TT 	U4U
U
UNrp   rt   rI   rG   r  r  
  s	    ROrI   r  c                       e Zd Zd Zy)marketingRequestc           
      J   	 |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }|j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d	      }|s,t        t        j                  d
dt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }	|	s,t        t        j                  ddt        j                        S |j
                  j                  d      }
|
s,t        t        j                  ddt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S |j
                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |||||	|
||      }|j
                  j                  d      rct        |j
                  j                  d            }t        t        j                        dz   |z   }t        |      |_        |j!                          t        t        j"                  dd      S # t$        $ r?}t        t        j&                  t        |      dt        j&                        cY d }~S d }~ww xY w)Nrx   ry   r   r[   r   zProduct name is requiredrL   r   prduct_descriptionzProduct description is requiredr  zProduct amount is requiredproduct_pricezProduct price is required
owner_namezOwner name is requiredr  zMobile number is requiredr   zAddress is requiredr   Email is required)r   r#  r  r$  r%  r  r   r   r  r  ra   )r   ro   r   r.   rd   r*   r   r   rP   MarketingRequestr   r  r9   r	   r#  r  r$  rk   r   r)  )rl   rm   r   r   r[   r   r#  r  r$  r%  r  r   r   mark_objr-  r   s                   rG   r   zmarketingRequest.postp  sw   /O<<##$89=||m4HHooj)8,,"">2<
6#>#>Pjksy  tO  tO  P  P(()=>
6#>#>Pqr  {A  {V  {V  W  WLL$$%56>
6#>#>Plmu{  vQ  vQ  R  R<<##O4=
6#>#>Pkltz  uP  uP  Q  Q!!,/:
6#>#>Phiqw  rM  rM  N  N<<##O4=
6#>#>Pkltz  uP  uP  Q  Q\\i(7
6#>#>Pefnt  oJ  oJ  K  K<<G$5
6#>#>Pcdlr  mH  mH  I  I&&--<[m  ~L  [h  t~  MZ  cj  qv-  w8llw!',,"2"27";<W""#C'/WLX^]]_
6#5#5yQ
RR	 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   BM AM #AM ,AM 5AM >AM AM AM C M 	N"#4NN"N"Nr   rt   rI   rG   r!  r!  o  r  rI   r!  c                       e Zd Zd Zy)getCustomerNotificationsc                    	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S t        j                  j                  |j                  
      j                  d      }g }|dk(  r_|D ]Y  }	|	j                  |	j                   |	j"                  t%        |	j&                        dz   |	j(                  d}
|j+                  |
       [ n^|D ]Y  }	|	j                  |	j,                  |	j"                  t%        |	j&                        dz   |	j(                  d}
|j+                  |
       [ t        t        j.                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j0                  t3        |      dt        j0                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r  r  r  r   r^   z ago)r   r  r+  r  r'  ra   rb   )rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r1  r   r*  r+  r   r  r'  r8   r  rk   r)  r9   )rl   rm   r[   r   r   r   r  
notify_objr>   notifyr   s              rG   ro   zgetCustomerNotifications.get  sN   $Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I%--44knn4MVVW\]:7$99&&"44V../6W ^^G  99"44V../6W ^^G  6#5#5yX_`
aa7  O6#?#?Qhiqw  rN  rN  O  OO8 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AH=  G; ;A%H= !DH= ;	H:+H5/H:0H= 5H::H= =	J4J :J JNrp   rt   rI   rG   r*  r*    s    %OrI   r*  c                       e Zd Zd Zy)clearCustomerNotificationsc                 X   	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S | j                  j                  j                  d
      }|r:t         j                  j                  |j                  |      j#                          nAt         j                  j                  |j                        }|D ]  }	|	j#                           t        t        j$                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j&                  t)        |      dt        j&                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r  r  notification_idr  r  ra   )rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rm   re   r1  r  rk   r)  r9   
rl   rm   r[   r   r   r   r  r1  r,  r-  s
             rG   ro   zclearCustomerNotifications.get  s   Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  ILL--112CD?!!((+..O(T[[]&..55{~~5NJ]]_ 
6#5#5yQ
RR  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AG!  F ;A%G! !B=G! 	G(+GGG! GG! !	H)*4H$H)$H)Nrp   rt   rI   rG   r/  r/    s    OrI   r/  c                       e Zd Zd Zy)readCustomerNotificationsc                    	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S | j                  j                  j                  d
      }t         j                  j                  |j                        }|r<t         j                  j                  |j                  |      j#                  d       n)|D ]$  }	t%        d       d|	_        |	j)                          & t        t        j*                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r  r  r1  r  r  T)r'  z----------------sssssssra   )rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rm   re   r1  r  r3   r'  r$  rk   r)  r9   r2  s
             rG   ro   zreadCustomerNotifications.get  s   Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I\\..223DE?%--44knn4M:!!((+..O(T[[fj[k
$%V^[[]  6#5#5yQ
RR  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AG5  F3 ;A%G5 !CG5 3	G2<+G-'G2(G5 -G22G5 5	H=>4H82H=8H=Nrp   rt   rI   rG   r4  r4    r  rI   r4  c                       e Zd Zd Zy)getVipStoresc                 "
   |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  d      j                         }|s,t        t        j                  ddt        j                  	      S t        j                  j                  |j                  d
      }t        j                  j                  |j                  d
      }g }g }	|dk(  r|j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  d}
|D ]j  }|j*                  j                  |j*                  j,                  |j*                  j.                  |j*                  j0                  d}|	j3                  |       l |D ]"  }t4        j                  j                  |j                  |      j                         }|rd
}nd}||j                  |j6                  |j8                  j:                  |j<                  j:                  |j>                  |j@                  jB                  |jD                  |jF                  |jH                  tK        jL                  |jN                        |jP                  |jR                  j&                  |jT                  d}|j3                  |       % n|j                  |j$                  |jV                  |jX                  |j                   |j"                  |j&                  |j(                  d}
|D ]j  }|j*                  j                  |j*                  jZ                  |j*                  j.                  |j*                  j\                  d}|	j3                  |       l |D ]"  }t4        j                  j                  |j                  |      j                         }|rd
}nd}||j                  |j^                  |j8                  j`                  |j<                  j`                  |jb                  |j@                  jd                  |jD                  |jF                  |jH                  tK        jL                  |jN                        |jP                  |jR                  j&                  |jT                  d}|j3                  |       % t        t        jf                  d||
|	d      S )Nrx   ry   r   r[   true)r   rL  rL   r   TrM  rN  r^   )r<   r   r   r   rO  r   r   rP  rQ  r   F)r   r   r   r   r   r~   r   r   r   r   r   r<   r   r   )r<   r   r   r   r   rO  r   rP  ra   )r   r   rR  rS  rT  )4r   ro   r   r.   rd   r   r/   r0   r   r   rP   rX  r   r   r   r   r   rO  r   r   rP  rR   r
  r  r  r8   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   rk   )rl   rm   r   r   r[   r   r  r   r>   rT  rS  rS   r^  r2   r   r   r_  s                    rG   ro   zgetVipStores.get  s9   ,,""#78-ll]388__Z((~~$$F$399;)	
&"="=O_`hn  iD  iD  E  E%%,,Y\\,N+  ''T'J+'+||,,!::%%))))
: w$$'''';;''44))@@	K {#  w&&---RXXZMYY00''<<%%::,,MM++
 nnMM++gnn-]]!!,,%K* NN;7 > ||--!;;%%))))
: w$$''''<<''44))AA	K {#  w&&---RXXZMYY::33))??''==//mm..mm--/!!}}##..K  NN;- 2 
&"4"4i_ft~  NY  Z  
[  [rI   Nrp   rt   rI   rG   r7  r7    s	    q[rI   r7  c                       e Zd Zd Zy)bestSellerStoresc                      y r  rt   r  s     rG   ro   zbestSellerStores.gets  r  rI   Nrp   rt   rI   rG   r;  r;  r  s    rI   r;  c                       e Zd Zd Zy)getTodayDealsc                    	 |j                   j                  d      }|r!t        j                  j                  |      }nd}|j                  d   }t
        j                  j                  dddt        j                               }|s,t        t        j                  dd	t        j                  
      S g }|dk(  r*|D ]"  }t        j                  j                  |j                  |      j                         }|rd}	nd}	|	|j                  |j                  |j                   j"                  |j$                  j"                  |j&                  |j(                  j*                  |j,                  |j.                  |j0                  t3        j4                  |j6                        |j8                  |j:                  j<                  |j>                  d}
|jA                  |
       % n=|D ]7  }t        j                  j                  |j                  |      j                         }|rd}	nd}	|	|j                  |jB                  |j                   jD                  |j$                  jD                  |jF                  |j(                  jH                  |j,                  |j.                  |j0                  t3        j4                  |j6                        |j8                  |j:                  jJ                  |j:                  jL                  |j>                  d}
|jA                  |
       : t        t        jN                  d|d      S # tP        $ r?}t        t        jR                  tU        |      d	t        jR                  
      cY d }~S d }~ww xY w)Nrx   ry   r   r[   r
   Tr   r  rL   r   r^   r   Fr   r   ra   rb   )+r   ro   r   r.   rd   r   r/   r   r   r   r   rP   r   r   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r;   r   r   r8   r   r   r   r   r   r   rk   r   r)  r9   )rl   rm   r   r   r[   r   r>   r2   r   r   r   r   s               rG   ro   zgetTodayDeals.getw  s   >O<<##$89=||m4HHooj)8!!((!t\`y}  zD  zD  zF(  G;
6#>#>Pbckq  lG  lG  H  H7$''..'**(.SYY[]ii::22))>>''<<..mm--mm--/!!==22..W  ^^G- 0 ''..'**(.SYY[]ii::33))??''==//mm..mm--/!!}}##==33..W" ^^G/ 0 6#5#5yX_`
aa	 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs%   B1M  4JM   	N	4N=NNNrp   rt   rI   rG   r>  r>  v  s    ?OrI   r>  c                       e Zd Zd Zy)sendRatingReviewc                 &   	 |j                   d   }|j                  j                  d      }|s,t        t        j
                  ddt        j
                        S 	 t        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j
                  d	dt        j
                        S |j                  }t        d
|       |j                   d   }t        d|       |D ]  }|d   }	|d   }
|d   }|d   }|d   }t        d|       t"        j                  j                  |      j%                  d       t&        j                  j                  |      j                         }t(        j                  j                  |      j                         }t*        j                  j-                  t/        |	      |
|||       d}t*        j                  j                  |      }t*        j                  j                  |      j1                         }|D ]  }|t/        |j2                        z  } t5        ||z        }t&        j                  j                  |      j%                  t/        |             t(        j                  j                  |      j%                  t/        |              t        t        j6                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j8                  t;        |      dt        j8                        cY d }~S d }~ww xY w)Nr[   rx   r  rL   r   ry   r{   r  r  zdata---rating_review_data
data_arrayr   reviewr<   r   rI  )r  T)rk  r   )r   rE  r2   rE  r;   r   )r2   )r   )r   zRating send successfully)rd   r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   bodyr3   r*   r  r  r   r   RatingReviewsr   intrY  r   roundrk   r)  r9   )rl   rm   r[   r   r   r   r  r*   rD  r   rE  r<   r   rI  product_obj_idstore_obj_idrW  sum_objrY  r  final_ratings                        rG   r   zsendRatingReview.post  s*   %Oooj)8<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4412:j!t(^F(^FJHl#JJH	*XX.55t5D&&---<BBDN>>((H(5;;=L  F6._jq} ~E##**:*>G!!(((<BBDE
c!((mU u%Lz*11\9J1K
NNX&--c,6G-H% & 6#5#5Gab
cc9  O6#?#?Qhiqw  rN  rN  O  OO: 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AM  L ;A%M !H$M 	M+M :M;M  MM 	N4NNNNr   rt   rI   rG   rA  rA    s    &OrI   rA  c                       e Zd Zd Zy)getChatRoomListc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }t        j                  j                  |	      j                  d
      }g }|D ]  }	|	j                   }
t"        j                  j                  |
j                        j                         }|j%                  |
j                  |j                  |j&                  |j(                  |	j*                  |	j,                  |	j.                  d        t        t        j0                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j2                  t5        |      dt        j2                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r   -last_message_time)r   r<   namepicturelast_message_textlast_message_timer'  successrb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   	chat_roomr   r;   r   r8   r   r   rU  rV  r'  rk   r)  r9   )rl   rm   r   r   r   r  r*   roomsr>   roomchatuserStoreObjs               rG   ro   zgetChatRoomList.get  sG   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4###2;;<PQ57tzzH~~$$X[[$9??AHNN(++hFaFanv  oB  oB  W[  Wm  Wm  BF  BX  BX  cg  co  co  p  q  6#5#5yX_`
aa  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AH  G ,A%H DH 	H+H
HH HH 	I !4II I Nrp   rt   rI   rG   rO  rO    r[  rI   rO  c                       e Zd Zd Zy)readMessagec                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |	      j                  d
      j                         }d|_        |j!                          t        t        j"                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j$                  t'        |      dt        j$                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  rQ  rR  r   rW  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rX  r   r'  r$  rk   r)  r9   )rl   rm   r   r   r   r  rY  s          rG   r   zreadMessage.post   s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I###2;;<PQWWY55=::<
6#5#5yQ
RR  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AF  E ,A%F A/F 	F+E<6F7F <FF 	G4GGGNr   rt   rI   rG   r^  r^    s    OrI   r^  c                       e Zd Zd Zy)getMessagesListc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }|s,t        t        j                  d
dt        j                        S t        j                  j                  |      }t
        j                  j                  |j                        }	t         j                  j                  ||	      j#                  d      t         j                  j                  |	|      j#                  d      z  }
g }|
D ]  }|j$                  |k(  rd}nd}|j&                  dk(  r5|j)                  |j*                  ||j,                  |j&                  d       [|j)                  |j.                  ||j,                  |j&                  d        t        t        j0                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j2                  t5        |      dt        j2                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r<   Store_id is requiredr   )sender_userreceiver_userz-created_atTFtext)r  senderr   r\   rW  rb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   re   r   r   Messager   rd  r\   r8   r  
created_atr  rk   r)  r9   )rl   rm   r   r   r   r  r*   r<   storeObjr[  messagesr>   r  rg  s                 rG   ro   zgetMessagesList.get  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I


4hhz"8
6#>#>Pfgou  pK  pK  L  Lnn  H -8ll("2"238oo$$$R[[\ijmtm|m|  nD  nD  QY  iq  nD  nr  n{  n{  |I  nJ  J87wh&VV||v^^&I[I[dkdpdprs^^wGYGYbibnbnop  6#5#5yX_`
aa/  O6#?#?Qhiqw  rN  rN  O  OO0 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AJ<  I: ,A%J< A
J< EJ< :	J9+J4.J9/J< 4J99J< <	L4K?9L?LNrp   rt   rI   rG   ra  ra    s     OrI   ra  c                       e Zd Zd Zy)
addMessagec                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }|s,t        t        j                  d
dt        j                        S |j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |      }	t
        j                  j                  |	j                        }
|j                  d      }t         j                  j                  ||
      }|s!t         j                  j#                  ||
       |sut$        j                  j#                  ||
|d       t         j                  j                  ||
      }||_        t)        j*                         |_        |j/                          nt1        |      }t3        t4        j6                        dz   |z   }t3        |      }t$        j                  j#                  ||
|d       t         j                  j                  ||
      }d |_        t)        j*                         |_        |j/                          t        t        j8                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j:                  t3        |      dt        j:                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r<   rc  r  zmessage is requiredr   r  r   r;   rf  )rd  re  r  r\   r  )rd  re  r  r\   rW  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r   r   rX  r   rh  rU  r   nowrV  r$  uploadThemessagepicturer9   r	   r#  rk   r)  )rl   rm   r   r   r   r  r*   r<   r  rj  r[  r  chatRoomcrr-  	image_urls                   rG   r   zaddMessage.post;  sB   .O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4hhz"8
6#>#>Pfgou  pK  pK  L  LXXi 7
6#>#>Pefnt  oJ  oJ  K  Knn  H -8ll("2"23888G5 &&HH&E8
((;
OOxxQX_ef					HH		=B"B#<<>BGGI#E*G!!"3&w.G'lIOOxxy_fg					HH		=BB#<<>BGGI
6#5#5yQ
RRK  O6#?#?Qhiqw  rN  rN  O  OON 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsc   AM9  L7 ,A%M9 A
M9 >M9 GM9 7	M6 +M1+M6,M9 1M66M9 9	O4N<6O<ONr   rt   rI   rG   rm  rm  :      /OrI   rm  c                       e Zd Zd Zy)startChatroomc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }|s,t        t        j                  d
dt        j                        S t
        j                  j                  |      }t        j                  j                  ||       t        t        j                   dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j"                  t%        |      dt        j"                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r<   rc  r   ro  rW  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   rX  r  rk   r)  r9   )rl   rm   r   r   r   r  r*   r<   s           rG   r   zstartChatroom.postn  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4hhz"8
6#>#>Pfgou  pK  pK  L  Lll(+8"""A
6#5#5yQ
RR  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AF<  E: ,A%F< A
F< AF< :	F9+F4.F9/F< 4F99F< <	H4G?9H?HNr   rt   rI   rG   rw  rw  m  s    OrI   rw  c                       e Zd Zd Zy)contactUsAdminc                 r   |j                   j                  d      }|j                   j                  d      }|j                   j                  d      }|s,t        t        j                  ddt        j                        S |s,t        t        j                  ddt        j                        S |s,t        t        j                  ddt        j                        S t        d	|||d
      }d}|}t        j                  }d}	t        j                  ||||	g|       t        t        j                  dd      S )N	full_namer   r  zFull name is requiredrL   r   r&  zMessage is requiredzcontact_us.html)r|  r   r  z
Contact Usr  r  rW  )r*   ro   r   r   rP   r   r	   r%  r   r&  rk   )
rl   rm   r|  r   r  r  r.  r/  r0  r1  s
             rG   r   zcontactUsAdmin.post  s6   ll{+)
,,

7
#%LLY''	xv/J/J\s t  }C  }X  }X  Y  Y	863N3N`s$t  }C  }X  }X  Y  Y	1L1L^s"t  }C  }X  }X  Y  Y!"39UZel5mn,'-''*"..-bTU	&"4"4iP	QQrI   Nr   rt   rI   rG   rz  rz    s    RrI   rz  c                       e Zd Zd Zy)getCouponListc                 	   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	   }t        j                          }t"        j                  j                  |
      }	t$        j                  j                  |j&                  d      }
d}g }|dk(  rl|	D ]d  }|j(                  r:|
D ]5  }|j(                  j                  |j(                  j                  k(  rd} nd}7 |j*                  dk(  rD|
D ]?  }|j(                  j,                  j                  |j.                  j                  k(  rd} nd}A |j0                  rD|
D ]?  }|j(                  j2                  j                  |j0                  j                  k(  rd} nd}A |j                  |j4                  |j6                  |j8                  |j*                  d|j:                  |j<                  |j.                  j                  |d
}|j?                  |       g nj|	D ]d  }|j(                  r:|
D ]5  }|j(                  j                  |j(                  j                  k(  rd} nd}7 |j*                  dk(  rD|
D ]?  }|j(                  j,                  j                  |j.                  j                  k(  rd} nd}A |j0                  rD|
D ]?  }|j(                  j2                  j                  |j0                  j                  k(  rd} nd}A |j                  |j@                  |j6                  |j8                  |j*                  d|j:                  |j<                  |j.                  j                  |d
}|j?                  |       g t        t        jB                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        jD                  tG        |      dt        jD                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r[   )coupon_end_date__gtFr   r   r^   TProductYthis coupon is a demo for testing our coupon section please wait until we finish our work
r)   coupon_namer4   r6   r:   coupon_descriptioncoupon_start_datecoupon_end_dater<   is_applicablera   rb   )$r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   re   rd   r   rp  r-   r1   r   r2   r:   r;   r<   category_productr   coupon_name_arabicr4   r6   r  r  r8   coupon_name_englishrk   r)  r9   )rl   rm   r   r   r   r  r*   r[   current_date
couponListrD   isApplicabler>   	allcouponcarts	allCoupons                   rG   ro   zgetCouponList.get  sg   cO<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I


4ooj)8,,.<$$+++M:\\  +*=*=U K7<7$	%
--

i//22
2  	y(%
--


 
 I$6$6$9$9
9  	""%
--
$
$
'
'9+E+E+H+H
H  ,,00))!11%% w#55!11##&&#Y ^^IK  N  	%
--

i//22
2  	y(%
--


 
 I$6$6$9$9
9  	""%
--
$
$
'
'9+E+E+H+H
H  ,,11))!11%% w#55!11##&&#Y ^^IM  N &"4"4iW^_
``w  O6#?#?Qhiqw  rN  rN  O  OOx 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AR  Q	 ,A%R M6R 		R+R=R>R RR 	S4SSSNrp   rt   rI   rG   r~  r~    s	    dOrI   r~  c                       e Zd Zd Zy)applyCouponc           	      
   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }	|	s,t        t        j                  d
dt        j                        S g }
t        j                  j                  |	      j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                   d      }d}d}d}|D ]  }|j"                  rd|j"                  j                  |j"                  j                  k(  r6t%        d       |j&                  dk(  rt)        |j*                        dz  }t)        |j,                        t)        |      z  }t)        |j,                        t)        |      z
  }|
j/                  t1        |j,                        t1        |      |j&                  t1        |      d       n|t)        |j,                        t)        |j*                        z
  }|j*                  }|
j/                  t1        |j,                        t1        |      |j&                  t1        |      d       |j2                  s|j"                  j4                  j                  |j6                  j                  k(  s|j&                  dk(  r{t)        |j*                        dz  }|t)        |j,                        z  }|t)        |      z  }|t)        |      z
  }t1        |      t1        |      |j&                  t1        |      dg}
F|t)        |j,                        z  }|t)        |j*                        z
  }|j*                  }t1        |      t1        |      |j&                  t1        |      dg}
 t        t        j8                  d|
d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j:                  t1        |      dt        j:                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r   coupon id is requiredr   rK   Fr   r   r!   r"   r#   r%   r&   r'   r(   ra   rb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r-   r1   r   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   rk   r)  )rl   rm   argskwargsr   r   r   r  r*   r)   r>   rC   rD   r@   rA   rB   rE   rF   s                     rG   r   zapplyCoupon.post   s{   BO<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4xx~9
6#>#>Pghpv  qL  qL  M  M7$$++y+9??A<
6#>#>Pcdlr  mH  mH  I  I\\  +*=*=U K7:=t<//222Ho		!	!<	/\11236wd../g>(()%0@*AAz~~C0@0@,A":&22*+. /
 (()%0L0L*MMz$44~~C0@0@,A":&22*+. / !6!6!9!99		!	!<	/\11236wd..//}'g6!%(8"99z),]);":&22*+. 0w
 t//00}!%(D(D"EEz$44),]);":&22*+. 0wG R &"4"4iW^_
``u  O6#?#?Qhiqw  rN  rN  O  OOv 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsq   AR?  Q= ,A%R? A
R? AR? ;F4R? 17R? *DR? =	R<+R71R<2R? 7R<<R? ?	T4T<TTNr   rt   rI   rG   r  r    s	    COrI   r  c                       e Zd Zd Zy)removeCouponc                 2   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }	|	s,t        t        j                  d
dt        j                        S t        j                  j                  |      j                         }
|
r|
j                  rd|
_        |
j!                          t        t        j"                  dd      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j$                  t'        |      dt        j$                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r   r  r  Fra   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   cartPackager  r$  rk   r)  r9   )rl   rm   r  r  r   r   r   r  r*   r)   r  s              rG   r   zremoveCoupon.postG  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4xx~9
6#>#>Pghpv  qL  qL  M  M$$++[+AGGI;##$)[!
&"4"4iP
QQ  O6#?#?Qhiqw  rN  rN  O  OO 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AG  F ,A%G A
G A.G 	G+G GG GG 	H4HHHNr   rt   rI   rG   r  r  F  r[  rI   r  c                       e Zd Zd Zy)getInvoicePdfc                    	 |j                   d   }|s,t        t        j                  ddt        j                        S t        j
                  j                  |      j                         }t        j
                  j                  |j                        j                         }t        j
                  j                  |j                  d      }t        j
                  j                  |j                        j                         }||||d	}t        d
      }|j                  ||||d	      }	t!        d      }
d|
d<   t"        j%                  |	      j'                  |
t"        j)                  d      g       |
S # t*        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Npack_idzOrder Pack Id is requiredrL   r   r   T)r  r    )orderPack_id)invoicecustomer_obj
orders_objtrans_idzgetinvoice.htmlzapplication/pdf)content_typezattachment; filename="file.pdf"zContent-Disposition)stringzstatic/store/css/invoice.css)stylesheets)re   r   r   rP   r  r.   r/   r0   r  r=   r1   r  r.  r   r   renderr   
weasyprintHTML	write_pdfCSSr   r)  r9   )rl   rm   r   r  r  r  r  r*   templatehtmlr?   r   s               rG   ro   zgetInvoicePdf.getc  s   OY'2
6#>#>Pkltz  uP  uP  Q  Q%%%,2247--&&'*=*=&>DDF<##goot#L:!))00

0LRRT8Lj\d
e4,-8
//WLV`ltu
v4(9:8%F8!"??$?))(
Om@n?o)p
?	 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs#   <E> D>E> >	G4G;GGNrp   rt   rI   rG   r  r  b  s    OrI   r  c                       e Zd Zd Zy)buyerWalletTranscationc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |j                  	      }g }|D ]X  }|j                  |j                  |j                  |j                   |j"                  |j$                  d
}	|j'                  |	       Z |j(                  }
t        t        j*                  d||
d      S # t        $ r&}t        t        j                  dd      cY d }~S d }~ww xY w# t        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  )rE  )r   r!  rF  r\   rG  r  ra   )r   r   r*   rA  )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   rJ  r!  rF  r\   rG  r  r8   rA  rk   r)  r9   )rl   rm   r   r   r   r  
wallet_objall_Datar?  r   rA  s              rG   ro   zbuyerWalletTranscation.getx  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  Qk  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I%%KNN%;:8v99}}[[00$$G OOG  ,,=
&"4"4iW_p}~
)  k6#?#?Qhijjk* 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AF7  F ,A%F7 B2F7 	F4F/)F4*F7 /F44F7 7	G? 4G:4G?:G?Nrp   rt   rI   rG   r  r  w  r_  rI   r  c                       e Zd Zd Zy)getInvoiceServicePdfc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  d   }|s,t        t        j                  ddt        j                        S t        j                  j                  |	      j                         }|j                  j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  d
}t        t        j*                  d|d      S # t        $ r&}t        t        j                  dd      cY d }~S d }~ww xY w# t        $ r?}t        t        j,                  t/        |      dt        j,                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  rM   )r  invoice_urlinvoice_numbertotal_before_vat
vat_amountrT   rR  ra   rb   )r   ro   r   r   rP   r   r.   r   r   re   rQ   r/   r0   rN   r   invoice_pdf_urlr  r  r  rT   rR  rk   r)  r9   )rl   rm   r   r   r   r  r  r   s           rG   ro   zgetInvoiceServicePdf.get  s   O<<##$89=
6#>#>Pkltz  uP  uP  Q  Qk  } 5H %%l3:
6#>#>Phiqw  rM  rM  N  N''..*.MSSU;//22-- //"33''++!!8 &"4"4iW_`
aa!  k6#?#?Qhijjk" 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsU   AF   E ,<F  )B$F  	E=E82E=3F  8E==F   	G	4G=GGNrp   rt   rI   rG   r  r    s    OrI   r  c                       e Zd Zd Zy)invoiceServiceCheckoutc                    	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }|j                  j                  d      }|s,t        t        j                  ddt        j                        S t        j                  j                  |	      j                         }d
}d}|j                  j                  d      }	|	r^t        |	|      }
|
d   dk(  r"|
d   d   d   }|
d   d   d   }	t        |      }nt        |
      S t        |j                        |z
  }d}|	}n|j                  }d}|j                   j"                  |j$                  |j&                  |j(                  |j*                  |||||j,                  d
}t        t        j.                  d|d      S # t        $ r&}t        t        j                  dd      cY d }~S d }~ww xY w# t        $ r?}t        t        j0                  t3        |      dt        j0                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   rU   invoice_id is requiredrM   r  r   r)   r   r+   r*   r   r(   TF)
r  r  r  r  r  rT   r  r  r  rR  ra   rb   )r   ro   r   r   rP   r   r.   r   r   r*   rQ   r/   r0   rW   r5   rT   rN   r   r  r  r  r  rR  rk   r)  r9   )rl   rm   r   r   r   rU   r  r@   r  r)   r  r  rT   r  r   s                  rG   r   zinvoiceServiceCheckout.post  s_   .O<<##$89=
6#>#>Pkltz  uP  uP  Q  Qk  } 5H !!,/:
6#>#>Phiqw  rM  rM  N  N''..*.MSSU;6||,9'	*=&+$V,Q/
;^'*;7YN+%&&1125EELF,,L//22-- //"33'')(!!8 &"4"4iW_`
aaM  k6#?#?QhijjkN 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOs]   AH  G  ,AH 5BH BH  	H)H
HH 
HH 	I4IIINr   rt   rI   rG   r  r    ru  rI   r  c                       e Zd Zd Zy)getCouponListForServicec                 D   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	   }t        j                  j!                         }t"        j                  j                  |d
      }	t%        d|	       d
}
g }|dk(  r|D ]  }|j&                  rD|	D ]?  }|j(                  j*                  j                  |j&                  j                  k(  rd}
 nd
}
A |j,                  dk(  r:|	D ]5  }|j.                  j                  |j0                  j                  k(  rd}
 nd
}
7 |j                  |j2                  |j4                  |j6                  |j,                  d|j8                  |j:                  |j0                  j                  |
d
}|j=                  |        n|D ]  }|j&                  rD|	D ]?  }|j(                  j*                  j                  |j&                  j                  k(  rd}
 nd
}
A |j,                  dk(  r:|	D ]5  }|j.                  j                  |j0                  j                  k(  rd}
 nd
}
7 |j                  |j>                  |j4                  |j6                  |j,                  d|j8                  |j:                  |j0                  j                  |
d
}|j=                  |        t        t        j@                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        jB                  tE        |      dt        jB                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r[   F)service_request_id__customerrR  rV   r^   TrO   r  r  ra   rb   )#r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   re   rd   r-   r   rQ   r3   rS   rN   rR   r:   r;   r<   r  r4   r6   r  r  r8   r  rk   r)  r9   )rl   rm   r   r   r   r  r*   r[   r  rV   r  r>   r  r  r  s                  rG   ro   zgetCouponListForService.get  s   UO<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I


4ooj)8$$((*:&&--;_d-e:j!<7$	'

$
$
.
.
1
1Y5F5F5I5I
I   	y('
--

i0033
3   ,,00))!11%% w#55!11##&&#Y ^^I=  @  	'

$
$
.
.
1
1Y5F5F5I5I
I   	y('
--

i0033
3   ,,11))!11%% w#55!11##&&#Y ^^I?  @ &"4"4iW^_
``[  O6#?#?Qhiqw  rN  rN  O  OO\ 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsV   AO  N ,A%O KO 	O+O	O
O OO 	P 4PPPNrp   rt   rI   rG   r  r    s	    VOrI   r  c                       e Zd Zd Zy)applyServiceCouponc                 
   	 |j                   j                  d      }|s,t        t        j                  ddt        j                        S 	 t
        j                  j                  |      }t        j                  j                  |j                        j                         }|s,t        t        j                  ddt        j                        S |j                  }|j                  d	      }	|	s,t        t        j                  d
dt        j                        S |j                  d      }
|
s,t        t        j                  ddt        j                        S g }t        j                  j                  |	      j                         }|s,t        t        j                  ddt        j                        S t        j                  j                  |
      j                         }|j                   rc|j"                  j$                  j                  |j&                  j                  k(  r+|j(                  dk(  rt+        |j,                        dz  }t+        |j.                        t+        |      z  }t+        |j.                        t+        |      z
  }|j1                  t3        |j.                        t3        |      |j(                  t3        |      d       n|t+        |j.                        t+        |j,                        z
  }|j,                  }|j1                  t3        |j.                        t3        |      |j(                  t3        |      d       |j4                  dk(  rY|j6                  j                  |j8                  j                  k(  r+|j(                  dk(  rt+        |j,                        dz  }t+        |j.                        t+        |      z  }t+        |j.                        t+        |      z
  }|j1                  t3        |j.                        t3        |      |j(                  t3        |      d       n|t+        |j.                        t+        |j,                        z
  }|j,                  }|j1                  t3        |j.                        t3        |      |j(                  t3        |      d       t        t        j:                  d|d      S # t        $ r6}t        t        j                  ddt        j                        cY d }~S d }~ww xY w# t        $ r?}t        t        j<                  t3        |      dt        j<                        cY d }~S d }~ww xY w)Nrx   r  rL   r   ry   r{   r  r  r)   r  rU   r  r   rK   rM   r"   r#   r  rO   ra   rb   )r   ro   r   r   rP   r   r.   r   r   r  r/   r   r0   r*   r-   rQ   r2   rN   rR   rS   r4   r5   r6   rT   r8   r9   r:   r;   r<   rk   r)  )rl   rm   r  r  r   r   r   r  r*   r)   rU   r>   rC   rV   rF   r@   rA   s                    rG   r   zapplyServiceCoupon.postE  s   <O<<##$89=
6#>#>Pkltz  uP  uP  Q  QO  } 5H %%hkk%:@@B;
6#>#>Pcdlr  mH  mH  I  I
,,4xx$9
6#>#>Pghpv  qL  qL  M  M&:
6#>#>Phiqw  rM  rM  N  N7$$++y+9??A<
6#>#>Pcdlr  mH  mH  I  I&&---LRRT:$$..11\5I5I5L5LL  ,.L001#5gZ445eGnDz../6F0GGjnn3z/F/F+G!*o%11)*- .
 z../l6R6R0SSj#33nn3z/F/F+G!*o%11)*- . 	)l33666  ,.L001#5gZ445eGnDz../6F0GGjnn3z/F/F+G!*o%11)*- .
 z../l6R6R0SSj#33nn3z/F/F+G!*o%11)*- .
 &"4"4iW^_
``i  O6#?#?Qhiqw  rN  rN  O  OOj 
 O
&"G"GY\]^Y_`hn  iN  iN  O  OOsj   AT   S ,A%T  A
T  >T  AT  :L#T  	T'+TTT  TT   	U()4U#U(#U(Nr   rt   rI   rG   r  r  D  s    =OrI   r  )qrest_framework.viewsr   rest_framework.responser   rest_frameworkr   auth_apis.modelsrandomr   admin_panel.modelsdjango.confr	   r   store_apis.modelspanel_apis.functionsr   django.core.paginatorr   r   r   django.db.modelsr   r  r   jsondjango.utils.timesincer   django.corer   django.template.loaderr   ior   	xhtml2pdfr   pdfkitdjango.httpr   r   django.templater   django.utilsr   rH   rW   rY   rv   r   r   r   r   r   r  r  r7  r:  rF  ra  ri  rm  rv  r  r  r  r  r  r  r  r  r  r  r   r  r5  r=  rL  r]  ra  rp  r  r  r  r  r  r  r  r  r  r  r  r!  r*  r/  r4  r7  r;  r>  rA  rO  r^  ra  rm  rw  rz  r~  r  r  r  r  r  r  r  r  rt   rI   rG   <module>r     sy   ( , !          " 
 H H     ,  3    $ / # !:~0dDg D<Jg J$qW q8 D  DD	`G 	`kR kRZb b4b' b>6OG 6Orb7 bBA]' A]FAIg AIFZ{' Z{xW{w W{vDa DaLl{G l{\c c.-nG -n^VO VOp8Og 8Ot<O <O|7O7 7Or1Og 1OfO' O6 O  ODOW O6TO TOl,Ow ,O\Og OD$OW $OLOg O4OG OBO' O>BO' BOHUO UOnvO vOp%a' %aNTOG TOl(O (OTFOG FOPEO EONcO' cOJcOW cOJIO IOVSOW SOj1Ow 1Of&Ow &OPO O2O O6r[7 r[hw @OG @OD'Ow 'OXOg O6O' O.!Og !OH0O 0OfOG O2RW R"eOG eOPDO' DONO7 O8OG O*OW OBO7 O<0OW 0OfWOg WOv>O >OrI   