
    ]i                      x   S SK Jr  S SKJrJr  S SKJr  S SKrS r " S S\R                  5      r
 " S S	\R                  5      rS SK Jr  S S
KJr   " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      rg)    )models)make_passwordcheck_password)ValidationErrorNc                     / SQn[         R                  R                  U R                  5      S   R	                  5       nX!;  a  [        S5      eSnU R                  U:  a  [        S5      eg )N)z.jpgz.jpegz.pngz.gifz.webp   z9Only image files (JPG, JPEG, PNG, GIF, WEBP) are allowed.i    z"Image size should not exceed 2 MB.)ospathsplitextnamelowerr   size)filevalid_extensionsextmax_sizes       -C:\admin_panel\admin_page\ad_static\models.pyvalidate_imager      sb    A
''

499
%a
(
.
.
0C
"YZZHyy8BCC     c                      \ rS rSrSr\R                  " SSS\/S9r\R                  " SSSS9r
\R                  " SSSS9r\R                  " S	SSS9r\R                  " \S
S9r\R                  " SS9r\R                  " SS9rS rSrg)Banner   ))r   home)   about)   services)   projects)   vaastu)   contactszimages/F)	upload_toblanknull
validatorsi  
max_lengthr%   r&         r   )choicesdefaultTauto_now_addauto_nowc                     U R                   $ N)titleselfs    r   __str__Banner.__str__;   s    zzr    N)__name__
__module____qualname____firstlineno__TYPE_CHOICESr   
ImageFieldr   image	CharFieldcontentr4   subtitleIntegerFieldtypeDateTimeField
created_at
updated_atr7   __static_attributes__r9   r   r   r   r      s    L "#	E G
 E
 H
 |Q?D%%48J%%t4Jr   r   c                   ,   \ rS rSr\R
                  " SS9r\R                  " SS9r\R                  " SSS9r
\R                  " SS9r\R                  " SSSS9r\R                  " SS9r\R                  " SS	9r\R                  " SS
9rS rS rS rSrg)Admin=   T)primary_keyr*   r)   )r)   uniquer(   r-   r.   r0   c                     U R                   $ r3   r   r5   s    r   r7   Admin.__str__G       yyr   c                 $    [        U5      U l        g r3   )r   passwordr6   raw_passwords     r   set_passwordAdmin.set_passwordI   s    %l3r   c                 ,    [        XR                  5      $ r3   )r   rV   rW   s     r   r   Admin.check_passwordL   s    lMM::r   )rV   N)r:   r;   r<   r=   r   BigAutoFieldidrA   r   
EmailFieldemailrV   
contact_noBooleanFieldstatusrF   rG   rH   r7   rY   r   rI   r9   r   r   rK   rK   =   s    				.Bs+DT:E3/H  Ct$GJ  .F%%48J%%t4J4;r   rK   )slugifyc                     ^  \ rS rSr/ SQr\R                  " SS9r\R                  " SSS9r	\R                  " SSSS9r\R                  " SSS	9r\R                  " SSSS
9r\R                  " SSS9r\R                  " S\SSS9r\R                  " SSSS9r\R                  " SSSS
9r\R                  " SSS9r\R(                  " SS9r\R,                  " SS9r\R,                  " SS9rU 4S jrS rSrU =r$ )ServiceQ   ))r   
Commercial)r   Retail)r   Residential   rN   Tr%   r&   zservices/images/r$   r%   r&   )rO   r%   r(   2   )r)   r,   r%   r&   zservices/featured/rP   r.   r0   c                    > U R                   (       d  [        U R                  5      U l         [        [        U ]  " U0 UD6  g r3   )slugrd   service_titlesuperrf   saver6   argskwargs	__class__s      r   rs   Service.savef   s0    yy 2 23DIgt!4262r   c                     U R                   $ r3   )rq   r5   s    r   r7   Service.__str__k   s    !!!r   )rp   )r:   r;   r<   r=   SERVICE_TYPE_CHOICESr   rA   rq   	TextFielddescriptionr?   r@   	SlugFieldrp   detail_page_titlerB   service_typefeatured_image	seo_titleseo_descriptionrb   rc   rF   rG   rH   rs   r7   rI   __classcell__rw   s   @r   rf   rf   Q   s    $$4M""D9K(:$TRE4t4D((Ct$OT5G##r;OW[bfgL&&1ETX\]N  Ct$GI&&T=O  .F%%48J%%t4J3
" "r   rf   c                       \ rS rSr\R
                  " \S\R                  S9r\R                  " SS9r
\R                  " SSS9rSrg	)
ServiceImagen   images)related_name	on_deletezservice/multiple/r$   Trl   r9   N)r:   r;   r<   r=   r   
ForeignKeyrf   CASCADEservicer?   r@   r|   long_descriptionrI   r9   r   r   r   r   n   s>    h&..YG(;<E''d>r   r   c                       \ rS rSr\R
                  " \\R                  SS9r\R                  " SS9r
\R                  " SSS9r\R                  " SS	9r\R                  " SS
9r\R"                  " SS9rS rSrg)Gallerys   gallery_images)r   r   rk   rN   Trl   zgallery/r   rP   r.   c                 N    U R                    SU R                  R                   S3$ )Nz ())r4   r   rq   r5   s    r   r7   Gallery.__str__{   s$    **R : :;1==r   r9   N)r:   r;   r<   r=   r   r   rf   r   r   rA   r4   r|   thumbnail_textr?   r@   rb   rc   rF   rG   r7   rI   r9   r   r   r   r   s   sr    6>>P`aG,E%%Dt<N
3E  .F%%48J>r   r   c                       \ rS rSr\R
                  " SS9r\R
                  " SS9r\R                  " 5       r	\R                  " 5       r\R                  " SS9r\R                  " SS9rS	 rS
rg)Enquiry   rk   rN      FrP   Tr.   c                     U R                   $ r3   rR   r5   s    r   r7   Enquiry.__str__   rT   r   r9   N)r:   r;   r<   r=   r   rA   r   phone_numberr_   r`   r|   messagerb   rc   rF   rG   r7   rI   r9   r   r   r   r      sc    s+D##r2LE G  /F%%48Jr   r   c                      ^  \ rS rSr\R
                  " SSS9r\R                  " SSSS9r\R                  " SSSS9r	\R                  " SSS	S
9r\R                  " SSSS9r\R                  " SS9rU 4S jrS rSrU =r$ )
SEOSetting   rk   zTitle for SEO (max 255 chars))r)   	help_textTzComma-separated keywords)r%   r&   r   zMeta description for the pagezSEO-friendly URL slug)rO   r)   r   zseo_images/rm   r0   c                 |   > U R                   (       d  [        U R                  5      U l         [        TU ]  " U0 UD6  g r3   )url_slugrd   r   rr   rs   rt   s      r   rs   SEOSetting.save   s+    }}#DNN3DMd%f%r   c                     U R                   $ r3   )r   r5   s    r   r7   SEOSetting.__str__   s    ~~r   )r   )r:   r;   r<   r=   r   rA   r   r|   meta_keywordsmeta_descriptionr~   r   r?   r@   rF   rH   rs   r7   rI   r   r   s   @r   r   r      s      C;Z[I$$4dF`aM''dIhitG^_HTME%%t4J&
 r   r   )	django.dbr   django.contrib.auth.hashersr   r   django.core.exceptionsr   r	   r   Modelr   rK   django.utils.textrd   rf   r   r   r   r   r9   r   r   <module>r      s     E 2 		D+V\\ +X;FLL ;"  %"fll ":?6<< ?
	>fll 	>	fll 	 r   