o
    .yh                     @   sf   d dl mZ d dlmZ d dlmZ d dlmZ e Zd dl	Z	G dd dej
ZG dd	 d	ej
ZdS )
    )models)get_user_model)Decimal)timezoneNc                   @   s   e Zd Zg dZejdedZejdddZejddZ	ejd	d
dZ
ejdddZejdddZejd	dZejd	dZG dd dZdd Zedd Zedd ZdS )SystemSettings))mpesaz
M-Pesa API)emailzEmail Configuration)smszSMS API)textsmszTextSMS API)mapszGoogle Maps API)mikrotikzMikroTik Configuration)generalzGeneral Settings   )
max_lengthchoicesd   zSetting key/name)r   	help_textz4Setting value (will be encrypted for sensitive data))r   Tz%Description of what this setting does)blankr   Fz%Mark as sensitive to hide value in UI)defaultr   zRequired for system operationauto_now_addauto_nowc                   @   s   e Zd ZddgZddgZdS )zSystemSettings.MetacategorykeyN)__name__
__module____qualname__unique_togetherordering r    r    //var/www/html/optinet_system/settings/models.pyMeta   s    r"   c                 C   s   |    d| j S )Nz - )get_category_displayr   selfr    r    r!   __str__!   s   zSystemSettings.__str__c                  C      t jjdd} dd | D S )zGet all M-Pesa settingsr   r   c                 S      i | ]}|j |jqS r    r   value.0settingr    r    r!   
<dictcomp>(       z5SystemSettings.get_mpesa_settings.<locals>.<dictcomp>r   objectsfilter)mpesa_settingsr    r    r!   get_mpesa_settings$      z!SystemSettings.get_mpesa_settingsc                  C   r'   )zGet all SMS settingsr	   r(   c                 S   r)   r    r*   r,   r    r    r!   r/   .   r0   z3SystemSettings.get_sms_settings.<locals>.<dictcomp>r1   )sms_settingsr    r    r!   get_sms_settings*   r6   zSystemSettings.get_sms_settingsN)r   r   r   SETTING_TYPESr   	CharFieldr   r   	TextFieldr+   descriptionBooleanFieldis_sensitiveis_requiredDateTimeField
created_at
updated_atr"   r&   staticmethodr5   r8   r    r    r    r!   r   	   s     

r   c                   @   s   e Zd ZejdddZejddddZejddddd	Zej	dd
Z
ejdddZejdd
Zej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ZejddZejddZdd ZG dd dZdS )CompanyProfile   zOptiNet Solutions)r   r   zcompany/T)	upload_tor   nullzcompany/favicon/z"Upload a favicon (.ico, .png) file)rF   r   rG   r   )r   r   )r   r   2   zKRA PIN or Tax ID)r   r   r   r      KESzAfrica/Nairobir   r   c                 C   s   | j  S )N)company_namer$   r    r    r!   r&   D   s   zCompanyProfile.__str__c                   @   s   e Zd ZdZdZdS )zCompanyProfile.MetazCompany ProfileN)r   r   r   verbose_nameverbose_name_pluralr    r    r    r!   r"   G   s    r"   N)r   r   r   r   r:   rK   
ImageFieldcompany_logofaviconr;   addressphone
EmailFieldr   URLFieldwebsitetax_idbusiness_registrationdefault_currencyr   r@   rA   rB   r&   r"   r    r    r    r!   rD   0   s     rD   )	django.dbr   django.contrib.authr   decimalr   django.utilsr   UserjsonModelr   rD   r    r    r    r!   <module>   s    '