
    h                        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      Zd dlmZ  ee      j-                         j.                  j.                  j.                  Z e eedz              Zd Zej9                  d       ee      fdefd       Zej=                  d       ed       ed       ee      fdededefd       ZejA                  d       ee      fde!defd       Z"ej9                  d       ee      fdefd       Z#ej=                  d       ed       ed       ee      fdededefd       Z$ejA                  d       ee      fde!defd        Z%ej9                  d!e"      d#efd$       Z&ej9                  d%e"       ee      fd#edefd&       Z'ej9                  d'e"       ee      fd#edefd(       Z(y))    )	APIRouterDependsHTTPException)Session)SessionLocal)
InstrumentKPIKPIValue)HTMLResponse)Jinja2Templates)Request)Formz/adminAdmin)prefixtags)Path	templates)	directoryc               #   t   K   t               } 	 |  | j                          y # | j                          w xY wwN)r   closedbs    S/home/user/Documents/projects/stock_analysis/stock_analysis/app/api/admin_routes.pyget_dbr      s)     	B


s   8# 858z/instrumentsr   c                 H    | j                  t              j                         S r   )queryr   allr   s    r   list_instrumentsr      s    88J##%%    .Nsymbolnamec                     |j                  t              j                  |       j                         rt	        dd      t        | |      }|j                  |       |j                          |S )N)r!     zInstrument already existsdetail)r!   r"   )r   r   	filter_byfirstr   addcommit)r!   r"   r   items       r   create_instrumentr,      sX    	xx
%%V%4::<C(CDDV$/DFF4LIIKKr    z/instruments/{id}idc                     |j                  t              j                  |       }|st        dd      |j	                  |       |j                          ddiS Ni  z	Not foundr%   deletedT)r   r   getr   deleter*   r-   r   r+   s      r   delete_instrumentr4   %   sJ    88J##B'DC44IIdOIIKtr    z/kpisc                 H    | j                  t              j                         S r   )r   r	   r   r   s    r   	list_kpisr6   /   s    88C=r    codec                     t        d       |j                  t              j                  |       j	                         rt        dd      t        | |      }|j                  |       |j                          |S )NzIN Create KPIs)r7   r$   zKPI already existsr%   )r7   r"   )printr   r	   r'   r(   r   r)   r*   )r7   r"   r   r+   s       r   
create_kpir:   3   s`    	
	xx}D)//1C(<==Dt$DFF4LIIKKr    z
/kpis/{id}c                     |j                  t              j                  |       }|st        dd      |j	                  |       |j                          ddiS r/   )r   r	   r1   r   r2   r*   r3   s      r   
delete_kpir<   =   sI    88C=R DC44IIdOIIKtr    /)response_classrequestc                 2    t         j                  dd| i      S )Nz
admin.htmlr?   )r   TemplateResponse)r?   s    r   admin_dashboardrB   F   s    %%lY4HIIr    z/admin/instrumentsc                    |j                  t              j                         }dj                  |D cg c]0  }d|j                   d|j
                  xs d d|j                   d2 c}      }t        d| d      S c c}w )	N C<div class='flex justify-between items-center border-b py-1'><span> (zC)</span><button class='text-red-600' hx-delete='/admin/instruments/zH' hx-target='#instrument-list' hx-swap='outerHTML'>Delete</button></div>z<div id='instrument-list'></div>content)r   r   r   joinr!   r"   r-   r   )r?   r   instrumentsihtmls        r   list_instruments_htmlrN   J   s    ((:&**,K77 '	 'a
"QVV\rN +FFGddV L	 '	 D "<TF& IJJ   5A?z/admin/kpisc                    |j                  t              j                         }dj                  |D cg c]0  }d|j                   d|j
                  xs d d|j                   d2 c}      }t        d| d      S c c}w )	NrD   rE   rF   z<)</span><button class='text-red-600' hx-delete='/admin/kpis/zA' hx-target='#kpi-list' hx-swap='outerHTML'>Delete</button></div>z<div id='kpi-list'>rG   rH   )r   r	   r   rJ   r7   r"   r-   r   )r?   r   kpiskrM   s        r   list_kpis_htmlrS   U   s    88C=D77  	  a166<R. )??@ttf E	  	 D "5dV6 BCCrO   ))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   r1   r   postr,   r2   intr4   r6   r:   r<   rB   rN   rS    r    r   <module>rd      sZ   5 5 " ( 3 3 * .  	('	3 >!!#**1188c([*@&AB	 N#*6? & & & ^$(I4:U\]cUd c S 7   "#-4V_ # 7  $ G#FO '   W9$t*GTZO S C '   |&-fo 3 G   C-JW J .J  >:A&/ K7 K K ?K M,73:6? DG D D 8Dr    