o
    sâg_  ã                   @   sp   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 dZ
G dd„ deƒZedkr6	 e ¡ Zeed	ƒ d
S d
S )é    )ÚRGBColor)ÚInchesÚLength)Ú	BaseModel)ÚDefaultSettingsÚSlideWorkAreazz
    You should include many slides on the industry which have reasonable depth and structure. This should be 4-5 slides.
c                   @   sú   e Zd ZU dZdZeed< dZeed< dZeed< dZ	eed< dZ
eed	< eed
ƒedƒedƒedƒdZeed< eddedddƒedddƒdZeed< deiZeeef ed< dZeed< dd„ Zdd„ Zededd fd d!„ƒZedefd"d#„ƒZd$S )%ÚDefaultConfigzDefault configÚdefaultÚclientzppt_templates/ppt_template.pptxÚppt_templateÚ	chroma_dbÚlayout_filezL./services/ppt_generator/layouts/generic/content_slide_layout_choices_v4.txtÚlayout_choicesgš™™™™™õ?gÃõ(\ÂÅ?g…ëQ¸*@gö(\Âõ@©ÚtopÚleftÚwidthÚheightÚslide_work_areaú	Arial.ttfé   r   éÿ   ©ÚfontÚ	font_sizeÚ
font_colorÚlight_font_colorÚdefault_settingsz merger and acquisition sell sideÚstructure_recommendationÚibÚclient_typec                 C   ó
   t | jƒS ©N©ÚstrÚ	__class__©Úself© r(   ú2/var/www/html/XCapMarket/configs/client/default.pyÚ__str__%   ó   
zDefaultConfig.__str__c                 C   r!   r"   r#   r&   r(   r(   r)   Ú__repr__(   r+   zDefaultConfig.__repr__Úconfig_dictÚreturnc                 C   sn  |  d¡durB|  d¡}ttt|  dd¡ƒtj ƒtt|  dd¡ƒtj ƒtt|  dd¡ƒtj ƒtt|  d	d
¡ƒtj ƒd|d< |  d¡durà|  d¡}zY|  dg d¢¡}|  dg d¢¡}t|ttfƒr¢t|ttfƒr¢t	t
|dd… ƒ\}}}t	t
|dd… ƒ\}	}
}t|  dd¡t
|  dd¡ƒt|||ƒt|	|
|ƒd|d< ntdƒ‚W n8 tttfyß } z)td|› ƒ t|  dd¡t
|  dd¡ƒtdddƒtdddƒd|d< W Y d}~nd}~ww | |  d| jd j¡|  d| jd j¡|  d| jd j¡|  d| jd j¡|  d| jd j¡|  d| jd j¡|  d| jd j¡|  d | jd  j¡|  d!| jd! j¡d"	}|S )#zœ
        Initialize DefaultConfig with custom values from a dictionary.
        Updates the class's default values with the provided config values.
        r   Nr   iÖ r   i8_ r   i†µ r   iP r   r   r   )Ú0r/   r/   r   )Ú255r0   r0   é   r   r   r   Ú16r   z$Color values must be lists or tupleszError processing colors: r   r   r
   r   r   r   r   r   r    ©	r
   r   r   r   r   r   r   r   r    )Úgetr   r   Úfloatr   Ú_EMUS_PER_INCHÚ
isinstanceÚlistÚtupleÚmapÚintr   r   Ú
ValueErrorÚ	TypeErrorÚ
IndexErrorÚprintÚmodel_fieldsr	   )Úclsr-   r   r   r   r   ÚrÚgÚbÚlrÚlgÚlbÚeÚnew_instancer(   r(   r)   Úinit_with_custom_values+   sž   	
ÿÿÿÿÿÿ
õ
ÿÿ


üù	


ü€þ
ÿÿÿÿÿÿ
þÿèz%DefaultConfig.init_with_custom_valuesc              
   C   sT   | j }|d j|d j|d j|d j|d j|d j|d j|d j|d	 jd
œ	S )z\
        Returns a dictionary containing all default values from the DefaultConfig.
        r
   r   r   r   r   r   r   r   r    r3   )r@   r	   )rA   Údefault_valuesr(   r(   r)   Úget_default_dict‰   s   ÿõzDefaultConfig.get_default_dictN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r$   Ú__annotations__r   r   r   r   r   r   r   r   r   r   Úsell_side_mnar   Údictr    r*   r,   ÚclassmethodrJ   rL   r(   r(   r(   r)   r      s4   
 
ÿÿ

üÿ]r   Ú__main__Údefault_configN)Úpptx.dml.colorr   Ú	pptx.utilr   r   Úpydanticr   Ú/services.ppt_generator.configs.standard_configsr   r   rR   r   rM   rL   rV   r?   r(   r(   r(   r)   Ú<module>   s     ý