U
    1i                     @  s   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ edZeejd	 Zd
dddZdddddZdddddddZdS )zDReport building: convert report data to HTML using Jinja2 templates.    )annotationsN)date)Path)EnvironmentFileSystemLoader)DailyReportseo_optimizerZ	templatesr   )returnc                   C  s   t tttddS )NT)loaderZ
autoescape)r   r   strTEMPLATES_DIR r   r   8/opt/web_system/seo_auto/src/reporting/report_builder.py_get_jinja_env   s    
r   r   r   )reportr	   c                 C  s0   t  }|d}|j| d}tdt| |S )zRender daily report as HTML string.

    Args:
        report: DailyReport with all site data.

    Returns:
        Rendered HTML string.
    zdaily_report.html)r   z&Daily report HTML generated (%d bytes))r   get_templaterenderloggerinfolen)r   envtemplatehtmlr   r   r   build_daily_report_html   s
    	
r   zdict[str, list[str]]zdate | None)site_alerts
alert_dater	   c                 C  sB   |dkrt  }t }|d}|j| |d}tdt| |S )zRender alert email as HTML string.

    Args:
        site_alerts: Dict of site_name -> list of alert messages.
        alert_date: Date for the alert header.

    Returns:
        Rendered HTML string.
    Nz
alert.html)r   r   zAlert HTML generated (%d bytes))r   todayr   r   r   r   r   r   )r   r   r   r   r   r   r   r   build_alert_html)   s    
r   )N)__doc__
__future__r   loggingdatetimer   pathlibr   Zjinja2r   r   src.models.data_modelsr   	getLoggerr   __file__parentr   r   r   r   r   r   r   r   <module>   s   
 