o
    &Ph                     @   s  d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dl mZ d dl mZ ed	d
gdZd dlmZ ee jjjZeeed dZdd ZedeefdefddZedededeefdededefddZe deefde!defddZ"edeefdefd d!Z#edededeefd"ededefd#d$Z$e d%eefde!defd&d'Z%ejd(ed)d*efd+d,Z&ejd-ed)eefd*edefd.d/Z'ejd0ed)eefd*edefd1d2Z(dS )3    )	APIRouterDependsHTTPException)Session)SessionLocal)
InstrumentKPIKPIValue)HTMLResponse)Jinja2Templates)Request)Formz/adminAdmin)prefixtags)Path	templates)	directoryc                  c   s(    t  } z
| V  W |   d S |   w N)r   closedb r   7/var/www/html/stock_analysis/be/app/api/admin_routes.pyget_db   s
   r   z/instrumentsr   c                 C      |  t S r   )queryr   allr   r   r   r   list_instruments      r   .Nsymbolnamec                 C   sD   | tj| d rtdddt| |d}|| |  |S )N)r      zInstrument already existsdetail)r    r!   )r   r   	filter_byfirstr   addcommit)r    r!   r   itemr   r   r   create_instrument   s   
r*   z/instruments/{id}idc                 C   :   | t| }|stddd|| |  ddiS Ni  z	Not foundr#   deletedT)r   r   getr   deleter(   r+   r   r)   r   r   r   delete_instrument%      
r2   z/kpisc                 C   r   r   )r   r   r   r   r   r   r   	list_kpis/   r   r4   codec                 C   sL   t d |tj| d rtdddt| |d}|| |  |S )NzIN Create KPIs)r5   r"   zKPI already existsr#   )r5   r!   )printr   r   r%   r&   r   r'   r(   )r5   r!   r   r)   r   r   r   
create_kpi3   s   
r7   z
/kpis/{id}c                 C   r,   r-   )r   r   r/   r   r0   r(   r1   r   r   r   
delete_kpi=   r3   r8   /)response_classrequestc                 C   s   t dd| iS )Nz
admin.htmlr;   )r   TemplateResponse)r;   r   r   r   admin_dashboardF   s   r=   z/admin/instrumentsc                 C   4   | t }ddd |D }td| ddS )N c              	   S   .   g | ]}d |j  d|jpd d|j dqS )C<div class='flex justify-between items-center border-b py-1'><span> (r?   zC)</span><button class='text-red-600' hx-delete='/admin/instruments/zH' hx-target='#instrument-list' hx-swap='outerHTML'>Delete</button></div>)r    r!   r+   ).0ir   r   r   
<listcomp>M       z)list_instruments_html.<locals>.<listcomp>z<div id='instrument-list'></div>content)r   r   r   joinr
   )r;   r   instrumentshtmlr   r   r   list_instruments_htmlJ   
   
rM   z/admin/kpisc                 C   r>   )Nr?   c              	   S   r@   )rA   rB   r?   z<)</span><button class='text-red-600' hx-delete='/admin/kpis/zA' hx-target='#kpi-list' hx-swap='outerHTML'>Delete</button></div>)r5   r!   r+   )rC   kr   r   r   rE   X   rF   z"list_kpis_html.<locals>.<listcomp>z<div id='kpi-list'>rG   rH   )r   r   r   rJ   r
   )r;   r   kpisrL   r   r   r   list_kpis_htmlU   rN   rQ   ))fastapir   r   r   sqlalchemy.ormr   app.db.databaser   app.db.modelsr   r   r	   fastapi.responsesr
   fastapi.templatingr   r   r   routerpathlibr   __file__resolveparentBASE_DIRstrr   r   r/   r   postr*   r0   intr2   r4   r7   r8   r=   rM   rQ   r   r   r   r   <module>   s>    ,	,	
 