-- PAAI (Pharmacist Assistant AI) 로그 스키마
-- 생성일: 2026-03-04

CREATE TABLE IF NOT EXISTS paai_logs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    
    -- 요청 정보
    pre_serial TEXT,                    -- 처방번호
    patient_code TEXT,                  -- 환자코드 (CusCode)
    patient_name TEXT,                  -- 환자명 (마스킹: 김**)
    
    -- 질병 정보
    disease_code_1 TEXT,                -- St1 (상병코드1)
    disease_name_1 TEXT,                -- 상병명1
    disease_code_2 TEXT,                -- St2 (상병코드2)
    disease_name_2 TEXT,                -- 상병명2
    
    -- 처방 정보
    current_medications TEXT,           -- JSON: 현재 처방 [{code, name, dosage, ...}]
    current_med_count INTEGER,          -- 현재 처방 약품 수
    previous_serial TEXT,               -- 이전 처방번호
    previous_medications TEXT,          -- JSON: 이전 처방
    prescription_changes TEXT,          -- JSON: {added, removed, changed}
    
    -- OTC 이력
    otc_history TEXT,                   -- JSON: {purchases, frequent_items}
    otc_visit_count INTEGER,            -- OTC 구매 횟수
    
    -- KIMS 상호작용
    kims_drug_codes TEXT,               -- JSON: 검사한 KD코드 배열
    kims_drug_count INTEGER,            -- 검사한 약품 수
    kims_interactions TEXT,             -- JSON: 상호작용 결과
    kims_interaction_count INTEGER,     -- 상호작용 건수
    kims_has_severe BOOLEAN DEFAULT 0,  -- 심각한 상호작용 (severity 1,2)
    kims_response_time_ms INTEGER,      -- KIMS API 응답시간
    
    -- AI 분석
    ai_prompt TEXT,                     -- AI에 전달한 프롬프트
    ai_model TEXT,                      -- 사용된 모델
    ai_response TEXT,                   -- JSON: AI 분석 결과
    ai_response_time_ms INTEGER,        -- AI 응답 시간
    ai_token_count INTEGER,             -- 토큰 사용량
    
    -- 상태
    status TEXT DEFAULT 'pending',      -- pending, kims_done, success, error
    error_message TEXT,
    
    -- 피드백
    feedback_useful INTEGER,            -- 1=유용, 0=아님, NULL=미응답
    feedback_comment TEXT               -- 약사 코멘트
);

-- 인덱스
CREATE INDEX IF NOT EXISTS idx_paai_created ON paai_logs(created_at);
CREATE INDEX IF NOT EXISTS idx_paai_patient ON paai_logs(patient_code);
CREATE INDEX IF NOT EXISTS idx_paai_status ON paai_logs(status);
CREATE INDEX IF NOT EXISTS idx_paai_serial ON paai_logs(pre_serial);
CREATE INDEX IF NOT EXISTS idx_paai_severe ON paai_logs(kims_has_severe);
