from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from app.api.enrollment.service import EnrollmentService
from app.database.main.mysql import get_db
from app.dependency.authantication import JWTManager
from app.api.enrollment.schema import createEnrollment, coursePriority


enrollment_router = APIRouter()

@enrollment_router.post("/create_seafarer_enrollment", response_model_exclude_none=True)
async def create_seafarer_enrollment(request: createEnrollment, db: Session = Depends(get_db), token: dict = Depends(JWTManager.verify_token)):
    return await EnrollmentService(db, token).create_enrollment(request)

@enrollment_router.post("/create_enrollment_prioritise_course", response_model_exclude_none=True)
async def create_enrollment_prioritise_course(request: coursePriority,db: Session = Depends(get_db), token: dict = Depends(JWTManager.verify_token)):
    return await EnrollmentService(db, token).course_priority(request)

@enrollment_router.delete("/delete_enrolled_course", response_model_exclude_none=True)
async def delete_enrolled_course(es_id:int, db:Session = Depends(get_db), token: dict = Depends(JWTManager.verify_token)):
    return await EnrollmentService(db, token).delete_enrolled_course(es_id)

@enrollment_router.get("/get_all_enrolled_course", response_model_exclude_none= True)
async def get_all_enrolled_course(db:Session = Depends(get_db), token: dict = Depends(JWTManager.verify_token)):
    return await EnrollmentService(db, token).get_all_enrollemn()
    