o
    i                     @   s`   d dl Zd dlmZmZmZ d dlmZ d dlm	Z	m
Z
 dede	fddZd	e	defd
dZdS )    N)A_DB_CONFIGloggerget_gemini_model)types)DictOptional
session_idreturnc              
   C   s  d}ddddddd}zzt jjdi t}|jdd}d}||| f | }|r|d|d< |d|d< |d	|d	< |d
sO|dsO|dr`|d
|d|dd|d< |dr~|d|d|d|d|dd|d< |d|d< |W W |r|  |  S S  t	y } zt
d|  |W  Y d}~W |r|  |  S S d}~ww |r|  |  w w )uS   
    user_profile_summary 테이블에서 모든 데이터를 조회합니다.
    N)usernamegoalmbtispi	studyplanit_levelT)
dictionarya  
            SELECT 
                username,
                final_goal,
                mbti,
                spi_language,
                spi_nonverbal,
                spi_personality,
                studyplan_duration,
                studyplan_status,
                studyplan_weekday_hours,
                studyplan_weekend_hours,
                studyplan_time_slot,
                it_level
            FROM user_profile_summary
            WHERE session_id = %s
        r
   
final_goalr   r   spi_languagespi_nonverbalspi_personality)language_gradenonverbal_gradepersonalityr   studyplan_durationstudyplan_statusstudyplan_weekday_hoursstudyplan_weekend_hoursstudyplan_time_slot)durationstatusweekday_hoursweekend_hours	time_slotr   r   zGet Summary Data Error:  )mysql	connectorconnectr   cursorexecutefetchonegetclose	Exceptionr   error)r   connsummaryr&   sqlrower"   r"   ;/home/air/goalskill_sales/back/app/models/summary_module.pyget_summary_data   sb   	





r3   datac              
      s:  zt  }g }| dr|d| d   | dr%|d| d   | dri| d }g }|dr?|d|d   |drN|d	|d   |d
r]|d|d
   |ri|dd|  | dr| d }g }|dr|d|d   |dr|d|d   |dr|d|d  d |dr|d|d  d |r|dd|  | dr|d| d   |rd|nd}d| d}|jjdtjd tj|d!gd"gtj	d#d$d%}	|	j
 }
|
sW d&S |
W S  ty } ztd'|  W Y d(}~d&S d(}~ww ))u   
    user_profile_summary 데이터를 기반으로 AI가 유저 분석 코멘트 생성
    
    Args:
        data: user_profile_summary에서 가져온 데이터
    
    Returns:
        AI 분석 코멘트 (일본어)
    r   u   目標: r   zMBTI: r   r   u   言語能力: r   u   非言語能力: r   u   性格分析: zSPI: z / r   r   u   学習期間: r   u   現在の状態: r   u   平日: u   時間r    u   週末: u   学習計画: r   u   IT基礎レベル: 
u   データなしu   
あなたはキャリアカウンセラーです。
以下のユーザープロフィール情報を基に、この人の特徴を客観的かつ簡潔に分析してください。

【ユーザープロフィール】
u  

【分析の指針】
1. この人の強みや特徴を3〜4文で簡潔にまとめる
2. 目標達成への適性や学習スタイルを評価する
3. 励ましのトーンではなく、客観的な分析トーンで書く
4. 100文字以内で簡潔に

分析コメント:
zgemini-2.5-flashuser)text)rolepartsg?)temperature)modelcontentsconfigu`   プロフィール情報を基に、あなたに最適なカリキュラムを作成します。zAI Analysis Generation Error: N)r   r)   appendjoinmodelsgenerate_contentr   ContentPartGenerateContentConfigr7   stripr+   r   r,   )r4   clientprofile_textr   	spi_partsspsp_partsprofile_summarypromptresponse
ai_commentr1   r"   r"   r2   generate_ai_analysisQ   sh   














rO   )mysql.connectorr#   app.core.configr   r   r   google.genair   typingr   r   strr3   rO   r"   r"   r"   r2   <module>   s    K