+
    Ö½jSY  ã                   ót  € ^ RI H t  ^ RIHtHtHtHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIt^ RIHt  ! R R]]P                  4      t ! R	 R
]]P                  4      t ! R R]4      t ! R R]]P                  4      t ! R R]]P                  4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R ]4      t ! R! R"]4      t  ! R# R$]4      t! ! R% R&]4      t" ! R' R(]4      t# ! R) R*]4      t$ ! R+ R,]4      t% ! R- R.]4      t& ! R/ R0]4      t'^ RIt ! R1 R2]]P                  4      t( ! R3 R4]4      t) ! R5 R6]4      t* ! R7 R8]4      t+ ! R9 R:]4      t, ! R; R<]4      t- ! R= R>]4      t. ! R? R@]4      t/ ! RA RB]4      t0R# )Cé    )Údatetime)	ÚColumnÚIntegerÚStringÚBooleanÚ
ForeignKeyÚDateTimeÚEnumÚTextÚUniqueConstraint)Úrelationship)ÚfuncN)ÚBasec                   ó&   € ] tR t^tRtRtRtRtRtR# )ÚUserRoleÚsuper_adminÚadmin_csÚteknisiÚagen_voucher© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚSUPER_ADMINÚADMIN_CSÚTEKNISIÚAGEN_VOUCHERÚ__static_attributes__r   ó    Ú*/var/www/html/bestweb/app/models/models.pyr   r      s   † Ø€KØ€HØ€GØ!„Lr    r   c                   ó   € ] tR t^tRtRtRtR# )ÚCustomerTypeÚbulanan_pppÚhotspot_voucherr   N)r   r   r   r   ÚBULANAN_PPPÚHOTSPOT_VOUCHERr   r   r    r!   r#   r#      s   † Ø€KØ'„Or    r#   c                   ób  € ] tR t^tRtRt]! ]RRR7      t]! ]	RRRR7      t
]! ]	RR7      t]! ]	RRR	7      t]! ]	RR
R	7      t]! ]R^ R	7      t]! ]	4      t]! ]	RR7      t]! ]^¯R7      t]! ]^dR7      t]! ]^–R7      t]! ]^ÈR7      t]! ]]! R4      RR7      t]! ]RR7      t]! R].R7      tRtR# )ÚServicePackagezHAdmin-maintained commercial/service options shown in installation forms.Úservice_packagesT©Úprimary_keyÚindexF©ÚuniqueÚnullabler-   ©r0   r$   ©r0   ÚdefaultÚprivate_pppoeÚbnbv1009©r3   úservice_profiles.idÚServiceProfile©Úforeign_keysr   N)r   r   r   r   Ú__doc__Ú__tablename__r   r   Úidr   ÚcodeÚnameÚservice_typeÚservice_modeÚpriceÚmikrotik_profileÚolt_vlan_profileÚservice_vlanÚ
pppoe_vlanÚhotspot_vlanÚ	iptv_vlanr   Úservice_profile_idr   Ú	is_activer   Úservice_profiler   r   r    r!   r)   r)      sØ   † ÙRØ&€MÙ	� T°Ô	6€BÙ�& °¸TÔB€DÙ�& 5Ô)€DÙ˜&¨5¸-ÔH€LÙ˜&¨5¸/ÔJ€LÙ�7 U°AÔ6€EÙ˜f“~ÐÙ˜f¨jÔ9ÐÙ˜'¨3Ô/€LÙ˜¨Ô-€JÙ˜'¨3Ô/€LÙ�w¨Ô,€IÙ ©Ð4IÓ)JÐUYÔZÐÙ�w¨Ô-€IÙ"Ð#3ÐCUÐBVÔW„Or    r)   c                   ó*   € ] tR t^%tRtRtRtRtRtRt	R# )ÚCustomerStatusÚrequestÚ
installingÚconfiguringÚactiveÚ	suspendedr   N)
r   r   r   r   ÚREQUESTÚ
INSTALLINGÚCONFIGURINGÚACTIVEÚ	SUSPENDEDr   r   r    r!   rM   rM   %   s   † Ø€GØ€JØ€KØ€FØ„Ir    rM   c                   ó   € ] tR t^,tRtRtRtR# )ÚServiceModeÚhotspotr4   r   N)r   r   r   r   ÚHOTSPOTÚPRIVATE_PPPOEr   r   r    r!   rY   rY   ,   s   † Ø€GØ#„Mr    rY   c                   ó¢   € ] tR t^0tRt]! ]RRR7      t]! ]RRR7      t	]! ]4      t
]! ]4      t]! ]]P                  R7      t]! ]RR7      tRtR# )ÚUserÚusersTr+   )r/   r-   r6   r   N)r   r   r   r   r<   r   r   r=   r   ÚusernameÚ	full_nameÚhashed_passwordr   r   Úroler   rJ   r   r   r    r!   r^   r^   0   sS   † Ø€Má	� T°Ô	6€BÙ�f T°Ô6€HÙ�v“€IÙ˜V“n€OÙ�& (×"2Ñ"2Ô3€DÙ�w¨Ô-„Ir    r^   c                   ór   € ] tR t^:tRt]! ]RR7      t]! ]4      t	]! ]4      t
]! ]4      t]! ]RR7      tRtR# )ÚMikrotikConfigÚmikrotik_configsT)r,   é"  r6   r   N)r   r   r   r   r<   r   r   r=   r   Úhostr`   ÚpasswordÚapi_portr   r   r    r!   re   re   :   s:   † Ø&€MÙ	� TÔ	*€BÙ�&‹>€DÙ�f‹~€HÙ�f‹~€HÙ�g tÔ,„Hr    re   c                   ó4  € ] tR t^BtRt]! ]RRR7      t]! ]RR7      t	]! ]RRRR7      t
]! ]RRRR7      t]! ]4      t]! ]4      t]! ]4      t]! ]RR7      t]! ]]P$                  R7      t]! ]^ R7      t]! ]]! R4      RR	7      t]! ]]! R
4      RR	7      t]! ]RR7      t]! ]RR7      t]! ]! RR7      RR	7      t]! ]4      t]! ]4      t]! ]4      t]! ]4      t ]! ]4      t!]! ]]! R4      RR	7      t"]! ]]! R4      RR	7      t#]! ]RR7      t$]! ]RR7      t%]! ]4      t&]! ]4      t']! ]4      t(]! ]RR7      t)]! ]RR7      t*]! ]RR7      t+]! ]RR7      t,]! ]RR7      t-]! ]4      t.]! ]4      t/]! ]4      t0]! ]4      t1]! ]4      t2]! ]4      t3]! ]4      t4]! ]4      t5]! ]4      t6]! ]4      t7]! ]RR7      t8]! ]! RR7      4      t9]! ]4      t:]! ]4      t;]! ]4      t<]! ]4      t=]! ]! RR7      RR	7      t>]! ]^R7      t?]! ]]@P‚                  P„                  R7      tC]! ]4      tD]! ]4      tE]! ]RR	7      tF]! ]4      tG]! ]RR7      tH]! ]RR7      tI]! ]RR7      tJ]! ]4      tK]! ]^¯R7      tL]! ]^¯R7      tM]! ]^dR7      tN]! ]^–R7      tO]! ]^ÈR7      tP]! ]RR7      tQ]! ]4      tR]! ]! RR7      ]SP¨                  ! 4       R7      tU]! ]! RR7      ]SP¨                  ! 4       R7      tV]! ]]! R4      4      tW]! ]]! R4      RR	7      tX]! ]RR	7      tY]Z! R]W.R7      t[]Z! R]X.R7      t\]Z! R]".R7      t]]Z! R ]#.R7      t^]Z! R!].R7      t_]Z! R"].R7      t`]! ]R#R7      ta]! ]R$R7      tb]! ]R$R7      tc]! ]4      td]! ]! RR7      RR	7      teR%tfR&# )'ÚCustomerÚ	customersTr+   ©r-   ©r/   r-   r0   Ú1playr6   zservice_packages.idr1   r7   F©Útimezoneúolt_devices.idúmikrotik_devices.idÚZTEÚC320ÚmanualÚunavailableÚnot_configuredr4   z	["pppoe"]Únoner5   ©Úserver_default©Úonupdateúusers.idzodps.idr^   r9   ÚODPÚ	OLTDeviceÚMikrotikDevicer)   r8   Únot_startedÚpendingr   N)gr   r   r   r   r<   r   r   r=   r   r?   Úcustomer_codeÚnikr   ÚaddressÚphoneÚtypeÚ	play_typerM   rS   ÚstatusÚharga_paketr   Úservice_package_idrI   r   Úis_paidÚis_archivedr	   Újatuh_tempoÚodp_infoÚont_snÚ	ont_brandÚont_rx_powerÚont_tx_powerÚolt_device_idÚmikrotik_device_idÚ
olt_vendorÚ	olt_modelÚolt_adapter_keyÚolt_fields_jsonÚolt_portÚont_sn_modeÚonu_id_modeÚolt_port_modeÚont_brand_modeÚhardware_discovery_statusÚodp_latitudeÚodp_longitudeÚcustomer_latitudeÚcustomer_longitudeÚwifi_ssid_24Úwifi_password_24_encÚwifi_ssid_5Úwifi_password_5_encÚwifi_ssid_hotspotÚwifi_password_hotspot_encÚacs_wifi_statusÚacs_last_syncÚmikrotik_userÚmikrotik_passÚpppoe_usernameÚpppoe_passwordÚpppoe_secret_revealed_atÚpppoe_secret_versionrY   r\   ÚvaluerA   Úmanagement_pppoe_usernameÚmanagement_pppoe_passwordÚmanagement_pppoe_vlanrK   Úprovisioning_modeÚservice_modes_jsonÚont_management_modeÚonu_idÚwan_vlanrE   rF   rG   rH   rD   Úvlan_idr   ÚnowÚ
created_atÚ
updated_atÚassigned_teknisi_idÚodp_idÚodp_portr   Úassigned_teknisiÚodpÚ
olt_deviceÚmikrotik_deviceÚservice_packageÚservice_catalog_profileÚprovisioning_statusÚmikrotik_provisioning_statusÚolt_provisioning_statusÚprovisioning_messageÚprovisioned_atr   r   r    r!   rl   rl   B   s+  † Ø€Má	� T°Ô	6€BÙ�& Ô%€DÙ˜6¨$°dÀTÔJ€MÙ
� ¨D¸4Ô
@€CÙ�T‹l€GÙ�6‹N€Eá�&‹>€DÙ�v wÔ/€IÙ�F N×$:Ñ$:Ô;€Fñ ˜¨!Ô,€KÙ ©Ð4IÓ)JÐUYÔZÐÙ ©Ð4IÓ)JÐUYÔZÐÙ�W eÔ,€GÙ˜¨%Ô0€KÙ™¨4Ô0¸4Ô@€Ká�f‹~€HÙ�F‹^€FÙ�v“€IÙ˜&“>€LÙ˜&“>€Lá˜7¡JÐ/?Ó$@È4ÔP€MÙ ©Ð4IÓ)JÐUYÔZÐÙ˜¨Ô.€JÙ�v vÔ.€IÙ˜V“n€OÙ˜T“l€OÙ�f‹~€HÙ˜¨Ô2€KÙ˜¨Ô2€KÙ˜6¨8Ô4€MÙ˜F¨HÔ5€NÙ & v°}Ô EÐÙ˜&“>€LÙ˜6“N€MÙ˜v›ÐÙ ›ÐÙ˜&“>€LÙ! &›>ÐÙ˜“.€KÙ  ›.ÐÙ˜v›ÐÙ & v£ÐÙ˜VÐ-=Ô>€OÙ™8¨TÔ2Ó3€Má˜6“N€MÙ˜6“N€MÙ˜F“^€NÙ˜F“^€NÙ%¡h¸Ô&=ÈÔMÐÙ! '°1Ô5ÐÙ˜&¨+×*CÑ*C×*IÑ*IÔJ€LÙ & v£ÐÙ & v£ÐÙ" 7°TÔ:ÐÙ˜V“n€OÙ˜v¨Ô?ÐÙ ¨kÔ:ÐÙ  °Ô8ÐÙ�G‹_€FÙ�g sÔ+€HÙ˜'¨3Ô/€LÙ˜¨Ô-€JÙ˜'¨3Ô/€LÙ�w¨Ô,€IÙ˜f¨jÔ9ÐÙ�W‹o€Gá™¨$Ô/ÀÇÂÃ
ÔK€JÙ™¨$Ô/¸$¿(º(»*ÔE€Já  ©*°ZÓ*@ÓAÐÙ�G™Z¨	Ó2¸TÔB€FÙ�g¨Ô-€HÙ# FÐ:MÐ9NÔOÐÙ
�u¨F¨8Ô
4€CÙ˜k¸¸ÔH€JÙ"Ð#3ÐCUÐBVÔW€OÙ"Ð#3ÐCUÐBVÔW€OÙ*Ð+;ÐK]ÐJ^Ô_Ðñ ! °Ô?ÐÙ#)¨&¸)Ô#DÐ Ù$ V°YÔ?ÐÙ! $›<ÐÙ™H¨dÔ3¸dÔC„Nr    rl   c                   óô   € ] tR t^¢tRt]! ]RRR7      t]! ]RR7      t	]! ]4      t
]! ]RR7      t]! ]^ R7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]]P&                  R7      t]! ]RR7      tRtR	# )
ÚVoucherAgentÚvoucher_agentsTr+   Fr1   rn   r6   r   N)r   r   r   r   r<   r   r   r=   r   r?   rˆ   ÚareaÚcommission_rater>   Úcommentr   rJ   r	   r   r¾   r¿   rÀ   r   r   r    r!   rÐ   rÐ   ¢   s‚   † Ø$€MÙ	� T°Ô	6€BÙ�& 5Ô)€DÙ�6‹N€EÙ�& Ô%€DÙ˜W¨aÔ0€OÙ�& 4Ô(€DÙ�V dÔ+€GÙ�w¨Ô-€IÙ˜¨(¯,©,Ô7€JÙ˜¨4Ô0„Jr    rÐ   c                   ó   € ] tR t^¯tRt]! ]RRR7      t]! ]RRRR7      t	]! ]RRR7      t
]! ]RR7      t]! ]RR	7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]]! R
4      RR7      t]! ]^ R	7      t]! ]RR	7      t]! ]]! R4      RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]! RR7      RR7      t]! ]! RR7      RR7      t]! ]! RR7      RR7      t]! ]RR	7      t]! ]RR7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t ]! ]]! R4      RR7      t!]! ]]"PF                  R	7      t$]! ]]! R4      RR7      t%]! ]RR7      t&]'! R].R7      t(]'! R].RR7      t)]'! R].R7      t*Rt+R# )ÚVoucherÚvouchersTr+   Fro   ©r0   r-   r1   Úlegacy_samer6   úhotspot_profiles.idÚ	availableúvoucher_agents.idrq   r„   úvoucher_batches.idrt   úsites.idr   rÐ   r9   ÚVoucherBatch©r:   Úback_populatesÚHotspotProfiler   N),r   r   r   r   r<   r   r   r=   r   r>   r`   r   Úpassword_ciphertextÚcredential_modeÚcredential_lengthÚcharacter_modeÚprofiler   Ú
profile_idrB   r‹   Úagent_idrÔ   Úlimit_uptimeÚlimit_idle_timer	   Úsold_atÚused_atÚ
expires_atÚsync_statusÚsync_updated_atÚbatch_idÚ	device_idÚsite_idr   r¾   r¿   Ú
created_byÚ
sold_pricer   ÚagentÚbatchÚhotspot_profiler   r   r    r!   rÖ   rÖ   ¯   s¸  † Ø€MÙ	� T°Ô	6€Bá�& ¨T¸EÔB€DÙ�f t°4Ô8€HÙ  °Ô5ÐÙ˜V¨]Ô;€OÙ˜w°Ô6ÐÙ˜F¨TÔ2€NÙ�V eÔ,€GÙ˜¡Ð,AÓ!BÈTÔR€JÙ�7 AÔ&€EÙ�F KÔ0€FÙ�g™zÐ*=Ó>ÈÔN€HÙ�V dÔ+€GÙ˜&¨4Ô0€LÙ˜V¨dÔ3€OÙ‘X tÔ,°tÔ<€GÙ‘X tÔ,°tÔ<€GÙ™¨$Ô/¸$Ô?€JÙ˜¨Ô3€KÙ˜X°Ô5€OÙ�g™zÐ*>Ó?È$ÔO€HÙ�w¡
Ð+@Ó AÈDÔQ€IÙ�W™j¨Ó4¸tÔD€GÙ˜¨(¯,©,Ô7€JÙ˜¡¨JÓ!7À$ÔG€JÙ˜¨$Ô/€JÙ˜°x°jÔA€EÙ˜°x°jÐQ[Ô\€EÙ"Ð#3À:À,ÔO„Or    rÖ   c                   ó„  € ] tR t^ÐtRt]! ]RRR7      t]! ]]! R4      RRR7      t	]! ]RR7      t
]! ]RR7      t]! ]RR	7      t]! ]R
R	7      t]! ]4      t]! ]! RR7      ]P$                  ! 4       R7      t]! ]]! R4      RR7      t]! ]RR7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! R]	.R7      tRtR# )ÚPaymentÚpaymentsTr+   úcustomers.idFrØ   r1   Úcashr6   Úpaidrq   r{   úvouchers.idrt   rÞ   rl   r9   r   N)r   r   r   r   r<   r   r   r=   r   Úcustomer_idÚamountr   ÚperiodÚmethodr‹   Ú	referencer	   r   r¾   Úpaid_atÚ
voucher_idÚreference_typerò   ró   r   Úcustomerr   r   r    r!   rú   rú   Ð   sÏ   † Ø€MÙ	� T°Ô	6€BÙ˜¡*¨^Ó"<ÀuÐTXÔY€KÙ�G eÔ,€FÙ�F UÔ+€FÙ�F FÔ+€FÙ�F FÔ+€FÙ�v“€IÙ‘X tÔ,¸T¿XºX»ZÔH€GÙ˜¡¨MÓ!:ÀTÔJ€JÙ˜F¨TÔ2€NÙ�w¡
Ð+@Ó AÈDÔQ€IÙ�W™j¨Ó4¸tÔD€GÙ˜J°k°]ÔC„Hr    rú   c                   óî   € ] tR t^àtRt]! ]RRR7      t]! ]]! R4      RRR7      t	]! ]
RRR7      t]! ]RR7      t]! ]! RR7      RR7      t]! ]
R	RR
7      t]! ]! RR7      RR7      t]! R]	.R7      tRtR# )ÚInvoiceÚinvoicesTr+   rü   FrØ   r1   rq   Úunpaid©r3   r-   rl   r9   r   N)r   r   r   r   r<   r   r   r=   r   r   r   r  r  r	   Údue_dater‹   r  r   r  r   r   r    r!   r
  r
  à   sƒ   † Ø€MÙ	� T°Ô	6€BÙ˜¡*¨^Ó"<ÀuÐTXÔY€KÙ�F U°$Ô7€FÙ�G eÔ,€FÙ‘h¨Ô-¸Ô>€HÙ�F H°DÔ9€FÙ‘X tÔ,°tÔ<€GÙ˜J°k°]ÔC„Hr    r
  c                   óò   € ] tR t^ëtRtRt]! ]RRR7      t]! ]	RRRR7      t
]! ]	RR7      t]! ]	RR7      t]! ]RR7      t]! ]RRR7      t]! ]! RR	7      ]P&                  ! 4       R
7      t]! ]	RR7      tRtR# )ÚDeviceCredentialzKEncrypted login material referenced by a device; plaintext is never stored.Údevice_credentialsTr+   Fr.   r1   r2   rq   r{   r   N)r   r   r   r   r;   r<   r   r   r=   r   r?   Úprotocolr`   r   Úencrypted_secretr   rJ   r	   r   r¾   r¿   Ú	cred_typer   r   r    r!   r  r  ë   s~   † ÙUØ(€MÙ	� T°Ô	6€BÙ�& °¸TÔB€DÙ�f uÔ-€HÙ�f uÔ-€HÙ˜d¨UÔ3ÐÙ�w¨¸Ô=€IÙ™¨$Ô/ÀÇÂÃ
ÔK€JÙ�v¨Ô-„Ir    r  c                   ó>  € ] tR t^øtRt]! ]RRR7      t]! ]RR7      t	]! ]RR7      t
]! ]RR7      t]! ]RR7      t]! ]R	R7      t]! ]RR7      t]! ]]! R
4      RR7      t]! ]RR7      t]! ]]! R4      RR7      t]! ]RR7      t]! ]RR7      t]! R].R7      tRtR# )r‚   Úmikrotik_devicesTr+   Fr1   rg   r6   rn   Ú
registeredúdevice_credentials.idrÞ   r  r9   r   N)r   r   r   r   r<   r   r   r=   r   r?   rh   rj   rÒ   r‹   r   rJ   r   Úcredential_idÚhotspot_nameró   r	   Úlast_sync_atÚoffline_moder   Ú
credentialr   r   r    r!   r‚   r‚   ø   s¸   † Ø&€MÙ	� T°Ô	6€BÙ�& 5Ô)€DÙ�& 5Ô)€DÙ�g tÔ,€HÙ�& Ô%€DÙ�F LÔ1€FÙ�w¨Ô-€IÙ˜7¡JÐ/FÓ$GÐRVÔW€MÙ˜&¨4Ô0€LÙ�W™j¨Ó4¸tÔD€GÙ˜(¨TÔ2€LÙ˜'¨5Ô1€LÙÐ0À¸ÔO„Jr    r‚   c                   ó8  € ] tR tRtRt]! ]RRR7      t]! ]RR7      t	]! ]RR7      t
]! ]RR7      t]! ]RR7      t]! ]4      t]! ]4      t]! ]RR7      t]! ]4      t]! ]R	R7      t]! ]RR7      t]! ]]! R
4      RR7      t]! ]RR7      t]! R].R7      tRtR# )r�   i  Úolt_devicesTr+   Fr1   Ússhr6   r  r  r  r9   r   N)r   r   r   r   r<   r   r   r=   r   r?   rh   ÚvendorÚmodelÚlocationÚpop_nameÚmanagement_protocolrj   r‹   r   rJ   r   r  r  r   r  r   r   r    r!   r�   r�     sµ   † Ø!€MÙ	� T°Ô	6€BÙ�& 5Ô)€DÙ�& 5Ô)€DÙ�F UÔ+€FÙ�6 EÔ*€EÙ�f‹~€HÙ�f‹~€HÙ  °Ô7ÐÙ�g‹€HÙ�F LÔ1€FÙ�w¨Ô-€IÙ˜7¡JÐ/FÓ$GÐRVÔW€MÙ˜&¨4Ô0€LÙÐ0À¸ÔO„Jr    r�   c                   óÚ   € ] tR tRtRt]! ]RRR7      t]! ]RRR7      t	]! ]RR7      t
]! ]4      t]! ]4      t]! ]^R7      t]! ]]! R	4      RR7      t]! R
].R7      t]! ]RR7      tRtR# )r€   i  ÚodpsTr+   F©r/   r0   r1   r6   rt   r‚   r9   r   N)r   r   r   r   r<   r   r   r=   r   r>   r?   ÚlatitudeÚ	longitudeÚ
port_countr   r—   r   rÇ   r   rJ   r   r   r    r!   r€   r€     s€   † Ø€MÙ	� T°Ô	6€BÙ�& °Ô6€DÙ�& 5Ô)€DÙ�f‹~€HÙ�v“€IÙ˜¨Ô+€JÙ ©Ð4IÓ)JÐUYÔZÐÙ"Ð#3ÐCUÐBVÔW€OÙ�w¨Ô-„Ir    r€   c                   ó²   € ] tR tRtRtRt]! ]RRR7      t]! ]	RRRR7      t
]! ]	RR7      t]! ]	RR7      t]! ]RR7      t]! ]RR7      t]! ]RRR	7      tR
tR# )r8   i%  z;Admin-managed technical profile used by installation forms.Úservice_profilesTr+   Fr.   r1   r2   r   N)r   r   r   r   r;   r<   r   r   r=   r   r>   r?   rD   Údownload_kbpsÚupload_kbpsr   rJ   r   r   r    r!   r8   r8   %  sg   † ÙEØ&€MÙ	� T°Ô	6€BÙ�& °¸TÔB€DÙ�& 5Ô)€DÙ˜f¨tÔ4ÐÙ˜7¨TÔ2€MÙ˜¨4Ô0€KÙ�w¨¸Ô=„Ir    r8   c                   óž   € ] tR tRtRt]! ]RRR7      t]! ]RRR7      t]! ]RR7      t	]! ]
RRR	7      t]! ]RRR	7      t]! R
RRR7      3tRtR# )ÚVlanMappingRulei0  Úvlan_mapping_rulesTr+   FrØ   r1   Úservicer2   Úsource_vlanÚpurposeÚuq_vlan_mapping_source_purpose)r?   r   N)r   r   r   r   r<   r   r   r=   r4  Útarget_vlanr   r5  r   rJ   r   Ú__table_args__r   r   r    r!   r1  r1  0  s]   † Ø(€MÙ	� T°Ô	6€BÙ˜¨5¸Ô=€KÙ˜¨5Ô1€KÙ�V e°YÔ?€GÙ�w¨¸Ô=€IÙ& }°iÐFfÔgÐi„Nr    r1  c                   óì   € ] tR tRtRt]! ]RRR7      t]! ]]! R4      RR7      t	]! ]
RR7      t]! ]
4      t]! ]4      t]! ]4      t]! ]! RR7      ]P$                  ! 4       R	7      t]! R
]	.R7      tRtR# )ÚAuditLogi9  Ú
audit_logsTr+   r   r1   Frq   r{   r^   r9   r   N)r   r   r   r   r<   r   r   r=   r   Úuser_idr   ÚactionÚentityÚ	entity_idr   Údetailr	   r   r¾   r¿   r   Úuserr   r   r    r!   r:  r:  9  st   † Ø €MÙ	� T°Ô	6€BÙ�W™j¨Ó4¸tÔD€GÙ�F UÔ+€FÙ�F‹^€FÙ�w“€IÙ�D‹\€FÙ™¨$Ô/ÀÇÂÃ
ÔK€JÙ˜¨g¨YÔ7„Dr    r:  c                   óÎ  € ] tR tRtRt]! ]RRR7      t]! ]]! R4      RRR7      t	]! ]
RR7      t]! ]
R	RR
7      t]! ]
4      t]! ]
4      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]4      t]! ]^ R7      t]! ]4      t]! ]! RR7      RR7      t]! ]! RR7      ]P0                  ! 4       R7      t]! ]! RR7      ]P0                  ! 4       R7      t]! R]	.R7      tRtR# )ÚProvisioningJobiD  Úprovisioning_jobsTr+   rü   FrØ   r1   Úqueuedr  rs   rt   r6   rq   r{   r}   rl   r9   r   N)r   r   r   r   r<   r   r   r=   r   r   r   Útargetr‹   r!  Úadapter_keyr–   r—   r   Úpayload_summaryÚattemptsÚ
last_errorr	   Úexecuted_atr   r¾   r¿   rÀ   r   r  r   r   r    r!   rC  rC  D  sì   † Ø'€MÙ	� T°Ô	6€BÙ˜¡*¨^Ó"<ÀuÐTXÔY€KÙ�F UÔ+€FÙ�F H°DÔ9€FÙ�F‹^€FÙ˜“.€KÙ˜7¡JÐ/?Ó$@È4ÔP€MÙ ©Ð4IÓ)JÐUYÔZÐÙ˜T“l€OÙ�g qÔ)€HÙ˜“€JÙ™¨4Ô0¸4Ô@€KÙ™¨$Ô/ÀÇÂÃ
ÔK€JÙ™¨$Ô/¸$¿(º(»*ÔE€JÙ˜J°k°]ÔC„Hr    rC  c                   ó^  € ] tR tRtRtRt]! ]RRR7      t]! ]]	! R4      RRR7      t
]! ]RR	7      t]! ]RRR7      t]! ]4      t]! ]]	! R
4      RR	7      t]! ]]	! R4      RR	7      t]! ]4      t]! ]4      t]! ]4      t]! ]! RR7      ]P.                  ! 4       RR7      t]! R]
.R7      tRtR# )ÚProvisioningEventiV  zPImmutable, sanitized audit trail for preview, queue, and device acknowledgement.Úprovisioning_eventsTr+   rü   FrØ   r1   rs   rt   rq   )r|   r0   rl   r9   r   N)r   r   r   r   r;   r<   r   r   r=   r   r   r   rF  r‹   r!  r–   r—   rG  r   rH  Úmessager	   r   r¾   rK  r   r  r   r   r    r!   rM  rM  V  s¾   † ÙZØ)€MÙ	� T°Ô	6€BÙ˜¡*¨^Ó"<ÀuÐTXÔY€KÙ�F UÔ+€FÙ�F U°$Ô7€FÙ�F‹^€FÙ˜7¡JÐ/?Ó$@È4ÔP€MÙ ©Ð4IÓ)JÐUYÔZÐÙ˜“.€KÙ˜T“l€OÙ�T‹l€GÙ™¨4Ô0ÀÇÂÃÐV[Ô\€KÙ˜J°k°]ÔC„Hr    rM  c                   ó&   € ] tR tRtRtRtRtRtRtR# )ÚEntityStatusii  rÛ   ÚsoldÚusedÚexpiredr   N)	r   r   r   r   rÛ   rR  rS  rT  r   r   r    r!   rQ  rQ  i  s   † Ø€IØ€DØ€DØ„Gr    rQ  c                   óÞ   € ] tR tRtRt]! ]RRR7      t]! ]RRR7      t	]! ]RR7      t
]! ]4      t]! ]4      t]! ]RR	7      t]! ]RR	7      t]! ]]P&                  R	7      t]! R
RR7      tRtR# )ÚSiteio  ÚsitesTr+   Fr(  r1   zAsia/Jakartar6   r‚   zMikrotikDevice.site_idr9   r   N)r   r   r   r   r<   r   r   r=   r   r>   r?   rÒ   r   r#  rr   r   rJ   r	   r   r¾   r¿   r   Údevicesr   r   r    r!   rV  rV  o  sw   † Ø€MÙ	� T°Ô	6€BÙ�& °Ô6€DÙ�& 5Ô)€DÙ�&‹>€DÙ�d‹|€HÙ�f nÔ5€HÙ�w¨Ô-€IÙ˜¨(¯,©,Ô7€JáÐ+Ð:RÔS„Gr    rV  c                   óD  € ] tR tRtRt]! ]RRR7      t]! ]RRR7      t	]! ]RR7      t
]! ]]! R4      RR7      t]! ]RR7      t]! ]^ R	7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]R
R	7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]4      t]! ]RR	7      t]! ]]P@                  R	7      t!]"! RRRR7      t#]"! R].R7      t$Rt%R# )rß   i|  Úvoucher_batchesTr+   Fr(  r1   rÚ   r6   Ú	generatedrÜ   rÞ   rt   r   r„   rÖ   zVoucher.batch_idr÷   rà   râ   r9   r   N)&r   r   r   r   r<   r   r   r=   r   Ú
batch_coderç   r   rè   ÚquantityÚgenerated_countrB   Úduration_daysrê   rë   Ú	user_modeÚcharacter_lengthræ   r‹   ré   ró   rò   rô   r   rÔ   rï   r	   r   r¾   r¿   r   r×   rø   r   r   r    r!   rß   rß   |  sN  † Ø%€MÙ	� T°Ô	6€BÙ˜ t°eÔ<€JÙ�V eÔ,€GÙ˜¡Ð,AÓ!BÈTÔR€JÙ�g¨Ô.€HÙ˜W¨aÔ0€OÙ�7 UÔ+€EÙ˜7¨TÔ2€MÙ˜&¨4Ô0€LÙ˜V¨dÔ3€OÙ�v¨Ô-€IÙ˜g°Ô5ÐÙ˜F¨TÔ2€NÙ�F KÔ0€FÙ�g™zÐ*=Ó>ÈÔN€HÙ�W™j¨Ó4¸tÔD€GÙ�w¡
Ð+@Ó AÈDÔQ€IÙ˜¡¨JÓ!7À$ÔG€JÙ�T‹l€GÙ˜¨Ô3€KÙ˜¨(¯,©,Ô7€JÙ˜IÐ4FÐW^Ô_€HÙ"Ð#3À:À,ÔO„Or    rß   c                   ój  € ] tR tRtRt]! ]RRR7      t]! ]RR7      t	]! ]RR7      t
]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]^R7      t]! ]^ R7      t]! ]^R7      t]! ]RR7      t]! ]]! R	4      RR7      t]! ]R
R7      t]! ]]P2                  R7      t]! ]RR7      tRtR# )râ   i–  Úhotspot_profilesTr+   Fr1   Ú12hr6   rÞ   r„   r   N)r   r   r   r   r<   r   r   r=   r   r?   Úlocal_profileÚ	rate_downÚrate_upÚsession_timeoutÚidle_timeoutÚsharedrB   Úvoucher_expiry_daysr   rJ   r   ró   rï   r	   r   r¾   r¿   rÀ   r   r   r    r!   râ   râ   –  sÉ   † Ø&€MÙ	� T°Ô	6€BÙ�& 5Ô)€DÙ˜6¨DÔ1€MÙ�w¨Ô.€IÙ�W tÔ,€GÙ˜V¨UÔ3€OÙ˜&¨4Ô0€LÙ�G QÔ'€FÙ�7 AÔ&€Eá  °"Ô5ÐÙ�w¨Ô-€IÙ�W™j¨Ó4¸tÔD€GÙ˜¨Ô3€KÙ˜¨(¯,©,Ô7€JÙ˜¨4Ô0„Jr    râ   c                   ó@  € ] tR tRtRt]! ]RRR7      t]! ]]! R4      RR7      t	]! ]]! R4      RR7      t
]! ]]! R	4      RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]]! R
4      RR7      t]! ]4      t]! ]RR7      t]! ]]P*                  R7      tRtR# )ÚAgentCommissioni©  Úagent_commissionsTr+   rÜ   Fr1   rÿ   rÝ   zpayments.idr„   r6   r   N)r   r   r   r   r<   r   r   r=   r   ré   r  rñ   r  ÚrateÚvoucher_priceÚtransaction_idr   r  r‹   r	   r   r¾   r¿   r   r   r    r!   rm  rm  ©  s¬   † Ø'€MÙ	� T°Ô	6€BÙ�g™zÐ*=Ó>ÈÔO€HÙ˜¡¨MÓ!:ÀTÔJ€JÙ�g™zÐ*>Ó?È$ÔO€HÙ�G eÔ,€FÙ�' EÔ*€DÙ˜7¨UÔ3€MÙ˜G¡Z°Ó%>ÈÔN€NÙ�F‹^€FÙ�F IÔ.€FÙ˜¨(¯,©,Ô7„Jr    rm  c                   óP  € ] tR tRtRt]! ]RRR7      t]! ]]! R4      RR7      t	]! ]]! R4      RR7      t
]! ]RR7      t]! ]R	R
7      t]! ]4      t]! ]RR7      t]! ]4      t]! ]RR7      t]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]]P,                  R
7      tRtR# )ÚWalletTransactioni·  Úwallet_transactionsTr+   r   r1   rÿ   FÚwalletr6   rt   rÞ   r   N)r   r   r   r   r<   r   r   r=   r   r<  r  r  r   r  Úwallet_typer‹   r  r	   rí   rò   ró   r   r¾   r¿   r   r   r    r!   rs  rs  ·  s´   † Ø)€MÙ	� T°Ô	6€BÙ�W™j¨Ó4¸tÔD€GÙ˜¡¨MÓ!:ÀTÔJ€JÙ�G eÔ,€FÙ�F HÔ-€FÙ˜“.€KÙ�F UÔ+€FÙ�v“€IÙ�X¨Ô-€GÙ�w¡
Ð+@Ó AÈDÔQ€IÙ�W™j¨Ó4¸tÔD€GÙ˜¨(¯,©,Ô7„Jr    rs  c                   óò   € ] tR tRtRt]! ]RRR7      t]! ]RR7      t	]! ]RR7      t
]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]]! R	4      RR7      t]! ]]P(                  R7      tR
tR# )ÚRadiusServeriÆ  Úradius_serversTr+   Fr1   i  r6   rÞ   r   N)r   r   r   r   r<   r   r   r=   r   r?   rh   ÚportÚsecretr   Ú
is_primaryrJ   r   ró   r	   r   r¾   r¿   r   r   r    r!   rx  rx  Æ  s€   † Ø$€MÙ	� T°Ô	6€BÙ�& 5Ô)€DÙ�& 5Ô)€DÙ�' 4Ô(€DÙ�F UÔ+€FÙ˜¨Ô/€JÙ�w¨Ô-€IÙ�W™j¨Ó4¸tÔD€GÙ˜¨(¯,©,Ô7„Jr    rx  c                   ó   € ] tR tRtRt]! ]RRR7      t]! ]RR7      t	]! ]RR7      t
]! ]]! R4      RR7      t]! ]]! R4      RR7      t]! ]R	R
7      t]! ]^ R
7      t]! ]4      t]! ]4      t]! ]]P*                  R
7      t]! ]RR7      tRtR# )Ú	SyncQueueiÒ  Ú
sync_queueTr+   Fr1   rÞ   rt   r„   r6   r   N)r   r   r   r   r<   r   r   r=   r   Úentity_typer?  r   Útarget_site_idÚtarget_device_idr‹   rI  r   rJ  Úpayloadr	   r   r¾   r¿   Ú	synced_atr   r   r    r!   r~  r~  Ò  sœ   † Ø €MÙ	� T°Ô	6€BÙ˜¨%Ô0€KÙ�w¨Ô/€IÙ˜G¡Z°
Ó%;ÀdÔK€NÙ˜g¡zÐ2GÓ'HÐSWÔXÐÙ�F IÔ.€FÙ�g qÔ)€HÙ˜“€JÙ�T‹l€GÙ˜¨(¯,©,Ô7€JÙ�x¨$Ô/„Ir    r~  c                   óü   € ] tR tRtRt]! ]RRR7      t]! ]]! R4      RR7      t	]! ]]! R4      RR7      t
]! ]RR7      t]! ]RR7      t]! ]RR7      t]! ]4      t]! ]R	R
7      t]! ]]P(                  R
7      tRtR# )Ú
OfflineLogià  Úoffline_logsTr+   rt   r1   rÞ   Fr„   r6   r   N)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    r!   r†  r†  à  s…   † Ø"€MÙ	� T°Ô	6€BÙ�w¡
Ð+@Ó AÈDÔQ€IÙ�W™j¨Ó4¸tÔD€GÙ˜¨%Ô0€KÙ�w¨Ô/€IÙ�F UÔ+€FÙ�T‹l€GÙ�F IÔ.€FÙ˜¨(¯,©,Ô7„Jr    r†  )1r   Ú
sqlalchemyr   r   r   r   r   r	   r
   r   r   Úsqlalchemy.ormr   Úsqlalchemy.sqlr   ÚenumÚapp.core.databaser   Ústrr   r#   r)   rM   rY   r^   re   rl   rÐ   rÖ   rú   r
  r  r‚   r�   r€   r8   r1  r:  rC  rM  rQ  rV  rß   râ   rm  rs  rx  r~  r†  r   r    r!   Ú<module>rŽ     sÄ  ðÝ ß k× kÕ kÝ 'Ý Û Ý "ô"ˆs�D—I‘Iô "ô(�3˜Ÿ	™	ô (ôX�Tô Xô&�S˜$Ÿ)™)ô ô$�#�t—y‘yô $ô.ˆ4ô .ô-�Tô -ô^Dˆtô ^Dô@1�4ô 1ôPˆdô PôBDˆdô Dô 	Dˆdô 	Dô
.�tô 
.ôP�Tô Pô P�ô Pô"
.ˆ$ô 
.ô	>�Tô 	>ôj�dô jô	8ˆtô 	8ôD�dô Dô$D˜ô Dó" ô�3˜Ÿ	™	ô ôTˆ4ô TôP�4ô Pô41�Tô 1ô&8�dô 8ô8˜ô 8ô
8�4ô 
8ô0�ô 0ô
8�ö 
8r    