
    i                      ~   d dl mZmZmZmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlZ G d dej                        Z G d d	ej                        Z G d
 dej                        Z G d dej                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Zy)     )	ColumnIntegerStringDateTimeBooleanFloatText
ForeignKeyEnum)relationship)func)dbNc                        e Zd ZdZdZdZdZdZy)SubscriptionStatusactiveexpired	cancelledtrialpendingN)__name__
__module____qualname__ACTIVEEXPIRED	CANCELLEDTRIALPENDING     L/home/kdj-ubuntu1/mlink_AI_Server/mlink-backend/./src/models/subscription.pyr   r      s    FGIEGr   r   c                        e Zd ZdZdZdZdZdZy)PaymentStatusr   	completedfailedr   refundedN)r   r   r   r   	COMPLETEDFAILEDr   REFUNDEDr   r   r    r"   r"      s    GIFIHr   r"   c                   $    e Zd ZdZdZdZdZdZdZy)PaymentMethodcard	kakao_pay	naver_pay	hecto_payportonetoss_paymentsN)	r   r   r   CARD	KAKAO_PAY	NAVER_PAY	HECTO_PAYPORTONETOSS_PAYMENTSr   r   r    r*   r*      s     DIIIG#Mr   r*   c                       e Zd ZdZdZdZy)OAuthProviderkakaonavergoogleN)r   r   r   KAKAONAVERGOOGLEr   r   r    r8   r8      s    EEFr   r8   c                      e Zd ZdZ eed      Z ee ed      d      Z e e	d            Z
 e e	d            Z e e	d            Z ee      Z e e	d	            Z e e	d	            Z ee ej&                         
      Z ee ej&                          ej&                               Z edd      Z edd      Zy)UserProfileuser_profilesTprimary_keyuser.idFnullable      d   defaultrK   onupdateUserprofileback_populatesOAuthAccountuser_profileN)r   r   r   __tablename__r   r   idr
   user_idr   company_namebusiness_numberphoner	   address
departmentpositionr   r   now
created_at
updated_atr   useroauth_accountsr   r   r    r@   r@   #   s    #M	T	*BWj3eDG&+&LVBZ(O6":ETlGs$JfSk"H($((*5J($((*xtxxzJJ y9D!.PNr   r@   c                   N   e Zd ZdZ eed      Z ee ed      d      Z e e	e
      d      Z e ed      d      Z ee      Z ee      Z ee      Z ee ej(                               Z ee ej(                          ej(                         	      Z ed
d      Zy)rR   ra   TrB   zuser_profiles.idFrE   rI   rJ   rL   r@   rP   N)r   r   r   rT   r   r   rU   r
   user_profile_idr   r8   providerr   provider_user_idr	   access_tokenrefresh_tokenr   
expires_atr   r]   r^   r_   r   rS   r   r   r    rR   rR   6   s    $M	T	*BWj1C&DuUOd=)E:HfSkE:$<L4LM!J($((*5J($((*xtxxzJJ  >NOLr   rR   c                   x   e Zd ZdZ eed      Z e ed      d      Z ee	      Z
 eed      Z e ed      d	      Z e ed
      d      Z eed	      Z ee	      Z eed	      Z ee ej(                         	      Z ee ej(                          ej(                               Z edd      Zy)ProductproductsTrB   rG   FrE      KRWrJ   rH      rL   SubscriptionproductrP   N)r   r   r   rT   r   r   rU   r   namer	   descriptionpricecurrencybilling_cycle
trial_daysfeaturesr   	is_activer   r   r]   r^   r_   r   subscriptionsr   r   r    rj   rj   G   s    M	T	*B&+.D,K7U+EfQi/H6":6M,Jd|Hw-I($((*5J($((*xtxxzJJ !	JMr   rj   c                   `   e Zd ZdZ eed      Z ee ed      d      Z ee ed            Z	 ee
d      Z e ed      d	
      Z e ee      d      Z e ee      ej$                  
      Z e ed            Z e ed            Z e ed            Z ee      Z e ed            Z e ed            Z e ed            Z ee      Z ee ej>                         
      Z  ee ej>                          ej>                               Z! e"dd      Z# e"dd      Z$y)PaymentpaymentsTrB   rD   FrE   subscriptions.idrl   rm   rJ   rI   
      rH   rL   rN   rP   ro   N)%r   r   r   rT   r   r   rU   r
   rV   subscription_idr   amountr   rt   r   r*   payment_methodr"   r   statuspg_transaction_idpg_merchant_idpg_response_coder	   pg_response_message
card_last4
card_brandbilling_keypayment_metadatar   r   r]   r^   r_   r   r`   subscriptionr   r   r    r{   r{   Z   s8   M	T	*BWj3eDGWj1C&DEOEE*FfQi/HD/%@ND'1F1FGF vc{+F3K(NfRj) , q	"Jr
#J%K d|($((*5J($((*xtxxzJJ z:DzJLr   r{   c                   d   e Zd ZdZ eed      Z ee ed      d      Z ee ed      d      Z	 e e
e      ej                        Z eed      Z eed      Z ee      Z eed      Z ee      Z ee      Z ee      Z e e
e      d      Z e ed	            Z ee      Z e ed
            Z ee      Z ee ej@                               Z! ee ej@                          ej@                               Z" e#dd      Z$ e#dd      Z% e#dd      Z& e#dd      Z'y)ro   ry   TrB   rD   FrE   zproducts.idrJ   rI   rH   rL   rN   rP   rj   r{   r   PaymentHistoryN)(r   r   r   rT   r   r   rU   r
   rV   
product_idr   r   r   r   r   
start_dateend_datetrial_end_dater   
auto_renewnext_billing_datecancelled_atr	   cancel_reasonr*   r   r   
payment_idr   ru   subscription_metadatar   r]   r^   r_   r   r`   rp   r|   payment_historiesr   r   r    ro   ro   z   sN   #M	T	*BWj3eDGM!:UKJD+,6H6P6PQF 51Jh/HH%N .Jx( (#L4LM D/$?Ns$JG_F6":&M #4L($((*5J($((*xtxxzJJ ?D9_EGInEH$%5nUr   ro   c                   L   e Zd ZdZ eed      Z e ed      d      Z ee	      Z
 e ed            Z ee	      Z ee      Z ee      Z eed      Z eed      Z ee ej(                               Z ee ej(                          ej(                         	      Zy
)ContentcontentsTrB   rG   FrE   2   rJ   rL   N)r   r   r   rT   r   r   rU   r   titler	   rr   content_typecontent_url	file_sizedurationr   
is_premiumrx   r   r   r]   r^   r_   r   r   r    r   r      s    M	T	*B6#;/E,K&*%L,KwIgH/Jw-I($((*5J($((*xtxxzJJr   r   c                       e Zd ZdZ eed      Z ee ed      d      Z ee ed      d      Z	 ee
 ej                               Z ee
      Z eed      Z ed	d
      Z ed      Zy)UserContentAccessuser_content_accessTrB   rD   FrE   zcontents.idrJ   rN   content_accessrP   r   N)r   r   r   rT   r   r   rU   r
   rV   
content_idr   r   r]   access_granted_ataccess_expires_atr   rx   r   r`   contentr   r   r    r   r      s~    )M	T	*BWj3eDGM!:UKJx<x(w-I /?@D9%Gr   r   c                       e Zd ZdZ eed      Z e ed      d      Z e ed      d      Z	 ee
d      Z e ed            Z eed	      Z ee      Z ee
      Z ee ej&                         	      Zy
)
WebhookLogwebhook_logsTrB   r   FrE   rI   rG   rJ   N)r   r   r   rT   r   r   rU   r   pg_provider
event_typer	   payload	signaturer   	processedr   processed_aterror_messager   r]   r^   r   r   r    r   r      s    "M	T	*Be4Kse4JTE*Gvc{#Iw.I(#L4LM($((*5Jr   r   c                   
   e Zd ZdZ eed      Z ee ed      d      Z ee	d      Z
 e ed      d      Z ee      Z ee ed            Z ee      Z ee	 ej&                         	      Z ed
      Z ed      Zy)SubscriptionRenewalLogsubscription_renewal_logsTrB   r}   FrE   rH   zpayments.idrJ   ro   r{   N)r   r   r   rT   r   r   rU   r
   r   r   renewal_dater   r   r   r   r   r	   r   r   r]   r^   r   r   paymentr   r   r    r   r      s    /M	T	*BWj1C&DuUO(U3LF2J/FE]FM!:;J4LM($((*5J  /L9%Gr   r   )
sqlalchemyr   r   r   r   r   r   r	   r
   r   sqlalchemy.ormr   sqlalchemy.sqlr   src.models.userr   enumr   r"   r*   r8   Modelr@   rR   rj   r{   ro   r   r   r   r   r   r   r    <module>r      s    ` ` ` '    DII $DII $DII Q"(( Q&P288 P"Kbhh K&Kbhh K@$V288 $VNKbhh K & &6 6&RXX &r   