
    J)i	                        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
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mZ  e       Zej/                  d       ee       ee      fdededefd       Zej/                  de       ee       ee      fdededefd       Zej/                  d       ee       ee      fdededefd       Zy)    )	APIRouterDependsHTTPException)StreamingResponse)Session)OptionalN   )Module10ReportService)Module10ReportRequestModule10ReportResponseModule10ReportPreview)get_db)JWTPayloadSchemaget_current_studentz/download10/{group_id}group_iddbtokenc                 >  K   	 t        ||      }t        |       }|j                  |      }|j                  d       t	        t        j                  |j                               ddd|  di      S # t        $ r}t        dd	t        |       
      d}~ww xY ww)z,Download Module 10 KPIs & Metrics PDF report)r   r   zapplication/pdfzContent-Dispositionz4attachment; filename=module_10_metrics_report_group_z.pdf)
media_typeheaders  zError downloading report: status_codedetailN)r
   r   generate_module10_reportseekr   ioBytesIOread	Exceptionr   str)r   r   r   servicerequestbufferes          F/var/www/html/retail-simulation-api/app/api/module_10_report/router.pydownload_module10_reportr'      s     ['51'
 11': 	A JJv{{}%(%)]^f]ggk'l
 	
  [6PQTUVQWPX4YZZ[s)   BA.A3 2B3	B<BBBz/preview10/{group_id})response_modelc                    K   	 t        ||      }|j                  |        d{   S 7 # t        $ r}t        dt	        |            d}~ww xY ww)z%Preview Module 10 report data as JSONNr   r   )r
   _fetch_module10_datar    r   r!   )r   r   r   r"   r%   s        r&   preview_module10_reportr+   *   sN     <'E211(;;;; <CF;;<s0   A + )+ A+ 	AA

AAz /preview-report-pdf10/{group_id}c                    K   	 t        ||      }|j                  |        d{   }| |dS 7 	# t        $ r}t        dt	        |            d}~ww xY ww)z6Generate PDF from JSON data and save to uploaded_filesN)r   	file_pathr   r   )r
   generate_preview_report_pdfr    r   r!   )r   r   r   r"   r-   r%   s         r&   preview_report_pdfr/   7   s[     <'E2!==hGG	$9== H <CF;;<s0   A 0 .0 A0 	AAAA)fastapir   r   r   fastapi.responsesr   sqlalchemy.ormr   typingr   r   r"   r
   schemar   r   r   app.database.main.mysqlr   app.dependency.authanticationr   r   module_10_report_routergetintr'   r+   r/        r&   <module>r<      s   5 5 / "  	 * X X * O#+  56 &/%&9:[[[ [ 7[2 4EZ[ &/%&9:
<
<
< 
< \
< ?@ &/%&9:<<< < A<r;   