from fastapi import APIRouter, HTTPException, Depends
from app.schemas.today_goal_schema import CheckInRequest, CheckInResponse, MorningAssessmentRequest, MorningAssessmentResponse
from app.models import today_goal_module

# 💡 목표 관리용 독립된 주소 적용
router = APIRouter(
    prefix="/goal-skill-sales/api",
    tags=["Today Goal"]
)

def get_db():
    conn = today_goal_module.get_db_connection()
    try:
        yield conn
    finally:
        conn.close()

@router.post("/check-in", response_model=CheckInResponse)
def submit_checkin(request_data: CheckInRequest, db_conn = Depends(get_db)):
    try:
        result = today_goal_module.process_30min_checkin(db_conn, request_data)
        return result
    except ValueError as ve:
        raise HTTPException(status_code=404, detail=str(ve))
    except Exception as e:
        raise HTTPException(status_code=500, detail="서버 내부 오류가 발생했습니다.")
    
@router.post("/morning-assessment", response_model=MorningAssessmentResponse)
def assess_morning(request_data: MorningAssessmentRequest, db_conn = Depends(get_db)):
    try:
        result = today_goal_module.evaluate_morning_motivation(db_conn, request_data)
        return result
    except ValueError as ve:
        raise HTTPException(status_code=400, detail=str(ve))
    except Exception as e:
        raise HTTPException(status_code=500, detail="서버 내부 오류가 발생했습니다.")