o
    h                     @   sH   d dl mZ d dlmZ dd ZG dd dejZG dd dejZd	S )
    )models)RegexValidatorc                 C   s   d| j  d| S )Nzshop_logos//name)instancefilename r	   $/var/www/html/pos/settings/models.pyshop_logo_path   s   r   c                   @   sv   e Zd ZddgZejdejdddZejdeddd	Z	ejd
de
dddgdddZdd ZG dd dZdd ZdS )Theme)lightz
Light Mode)darkz	Dark Modetenants.TenantT)	on_deletenullblank
   r   z"Choose between light and dark mode)
max_lengthchoicesdefault	help_text   z#2563ebz^#(?:[0-9a-fA-F]{3}){1,2}$zEnter a valid HEX color code.)regexmessagezProfessional blue brand colorF)r   r   
validatorsr   editablec                 C   s   |    dS )Nz Theme)get_mode_displayselfr	   r	   r
   __str__!   s   zTheme.__str__c                   @      e Zd ZdZdZdS )z
Theme.Metar   ThemesN__name__
__module____qualname__verbose_nameverbose_name_pluralr	   r	   r	   r
   Meta$       r)   c                    sX   | j d t fdddD }tdd |D }d|d d|d d|d	 dS )
zCGenerate a darker shade of the primary color for secondary elements#c                 3   s&    | ]}t  ||d   dV  qdS )      N)int).0i	hex_colorr	   r
   	<genexpr>,   s   $ z,Theme.get_secondary_color.<locals>.<genexpr>)r   r,      c                 s   s"    | ]}t d t|d V  qdS )r   g?N)maxr.   )r/   cr	   r	   r
   r3   -   s     r   02x   r,   )primary_colorlstriptuple)r   rgb
darker_rgbr	   r1   r
   get_secondary_color(   s   $zTheme.get_secondary_colorN)r$   r%   r&   THEME_CHOICESr   OneToOneFieldCASCADEtenant	CharFieldmoder   r9   r    r)   r>   r	   r	   r	   r
   r      s0    r   c                   @   sf  e Zd ZejdejddddZejddZe	 Z
ejdedd	gd
Ze ZejdddZejedddZejddddZejddddZejddddZejddddZejdddgddZejddddZejdddZejdddZejddddZejddZejddZ ejdddZ!ejddddZ"ejddddZ#dd Z$dd Z%G dd dZ&dS )Shopr   shopsT)r   related_namer   r      )r      z^\+?\d{9,15}$zEnter a valid phone number.)r   r   )r   r   )	upload_tor   r   )r   r   r   r   )sandboxSandbox)
production
ProductionrK   )r   r   r   )r   F2   c                 C   s   | j S )Nr   r   r	   r	   r
   r    W   s   zShop.__str__c                 C   s   | j r| j jS dS )Nz/static/images/default_logo.png)logourlr   r	   r	   r
   get_logo_urlZ   s   zShop.get_logo_urlc                   @   r!   )z	Shop.MetarE   ShopsNr#   r	   r	   r	   r
   r)   _   r*   r)   N)'r$   r%   r&   r   
ForeignKeyrA   rB   rC   r   	TextFieldaddressr   phone
EmailFieldemailURLFieldwebsite
ImageFieldr   rP   mpesa_consumer_keympesa_consumer_secretmpesa_short_codempesa_passkey	mpesa_env	smtp_hostPositiveIntegerField	smtp_port	smtp_usersmtp_passwordBooleanFieldsmtp_use_tlssmtp_use_sslsms_api_urlsms_api_keysms_sender_idr    rR   r)   r	   r	   r	   r
   rE   0   s@    
rE   N)	django.dbr   django.core.validatorsr   r   Modelr   rE   r	   r	   r	   r
   <module>   s
    )