U
    i                     @   s   d dl Z d dlmZmZ d dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZ d dlmZ G dd deZG d	d
 d
eZdS )    N)datetimetimezone)ListOptional)BooleanDateDateTimeFloat
ForeignKeyIntegerString)Mappedmapped_columnrelationship)Basec                   @   s  e Zd ZU dZeeddd dZee e	d< eeddZ
ee e	d	< eeddZeee  e	d
< eeddZee e	d< eeddZee e	d< eeddZee e	d< eedddZee e	d< eedddZee e	d< eeddZee e	d< eeddZee e	d< eeddZeee  e	d< eeddZeee  e	d< eedddZee e	d< eedddZee e	d< eedddZee e	d< eedddZee e	d< eedddZ ee e	d < eedd!dZ!ee e	d"< eeddZ"eee  e	d#< eedddZ#ee e	d$< ee$dddZ%ee& e	d%< eedd&dZ'ee e	d'< eeddZ(eee  e	d(< eeddZ)eee  e	d)< eeddZ*eee  e	d*< ee+dd+d,d d-Z,ee e	d.< ee+dd+d/d d0d d1Z-ee e	d2< e.d3d4d5d6d7Z/ee0d3  e	d8< d9S ):
InvestmentZinvestmentsTc                   C   s   t t S Nstruuiduuid4 r   r   </var/www/html/me.goteku.com/backend/app/models/investment.py<lambda>       zInvestment.<lambda>primary_keydefaultidFnullablebankplatforminvestment_numberinvestment_typeinvestment_nameZIDRr    r   currencyg      ?	kurs_beli
owner_nameinvestment_datetenor_monthsmaturity_date   unitsi@B face_value_per_unitg      Y@purchase_pricer   nominal_idrg        interest_rateZat_maturitycoupon_frequencynext_coupon_datetax_rateis_tax_inclusiveactivestatus	sold_date
sold_pricenotesr   c                   C   s   t tjS r   r   nowr   utcr   r   r   r   r   H   r   r   
created_atc                   C   s   t tjS r   r=   r   r   r   r   r   L   r   c                   C   s   t tjS r   r=   r   r   r   r   r   M   r   )r   onupdate
updated_atInvestmentAttachment
investmentzall, delete-orphanzInvestmentAttachment.created_at)back_populatescascadeorder_byattachmentsN)1__name__
__module____qualname____tablename__r   r   r   r   r   __annotations__r!   r"   r   r#   r$   r%   r'   r	   r(   floatr)   r   r*   r   r   r+   intr,   r.   r/   r0   r1   r2   r3   r4   r5   r   r6   boolr8   r9   r:   r;   r   rA   rC   r   rI   r   r   r   r   r   r   	   sz   
           r   c                   @   s  e Zd ZU dZeeddd dZee e	d< eee
ddd	d
dZee e	d< eed
dZee e	d< eed
dZee e	d< eed
dZee e	d< eed
dZee e	d< eed
ddZee e	d< eedddd dZee e	d< edddZed e	d< dS )rD   Zinvestment_attachmentsTc                   C   s   t t S r   r   r   r   r   r   r   ]   r   zInvestmentAttachment.<lambda>r   r   zinvestments.idCASCADE)ondeleteFr   investment_idgoogle_drive_file_idgoogle_drive_view_urloriginal_filenamecontent_typer   r&   	file_sizer<   c                   C   s   t tjS r   r=   r   r   r   r   r   h   r   r@   rA   r   rI   )rF   rE   N)rJ   rK   rL   rM   r   r   r   r   r   rN   r
   rT   rU   rV   rW   rX   r   rY   rP   r   rA   r   r   rE   r   r   r   r   rD   Y   s0   
   
   rD   )r   r   r   typingr   r   
sqlalchemyr   r   r   r	   r
   r   r   sqlalchemy.ormr   r   r   app.core.databaser   r   rD   r   r   r   r   <module>   s   $P