from typing import Optional
from app.utils.schemas_utils import CustomModel
class FullCourseResponse(CustomModel):

    full_course_id: int
    program: str | None
    batch: str | None
    course: str | None
    batch_course_code: str | None
class CourseListResponse(CustomModel):

    course_id: int
    course_name: str
    duration_hrs: int | None
    operational_area: str | None
    functional_area: str | None
    target_audience: str | None
    standards: str | None
    validity_days: int | None
    minimum_hours: int | None = None
    pass_percentage: int | None = None
    maximum_mark: int | None = None
    pass_mark: int | None = None
    series: str | None = None
    sire_elements: str | None = None
    rightship_dbms_elements: str | None = None
    tmsa_elements: str | None = None
    cdi_elements: str | None = None
    stcw_elements: str | None = None
    approved_by_classnk: str | None = None
    full_course_id: int | None

class CourseFilterQuery(CustomModel):

    functional_area: Optional[str] = None
    operational_area: Optional[str] = None
    target_audience: Optional[str] = None
    standards: Optional[str] = None
class CourseListCreat(CustomModel):

    full_course_id: int |  None = None
    duration_hrs: int | None = None
    operational_area: str | None = None
    functional_area: str | None = None
    target_audience: str | None = None
    standards: str | None = None
    validity_days: int | None = None
    minimum_hours: int | None = None
    pass_percentage: int | None = None
    maximum_mark: int | None = None
    pass_mark: int | None = None
    series: str | None = None
    sire_elements: str | None = None
    rightship_dbms_elements: str | None = None
    tmsa_elements: str | None = None
    cdi_elements: str | None = None
    stcw_elements: str | None = None
    approved_by_classnk: str | None = None
class FullCourseBase(CustomModel):

    program: str | None = None
    batch: str | None = None
    course: str | None = None
    batch_course_code: str
class CourseListUpdate(CustomModel):
    
    course_id: int 
    full_course_id: int |  None = None
    duration_hrs: int | None = None
    operational_area: str | None = None
    functional_area: str | None = None
    target_audience: str | None = None
    standards: str | None = None
    validity_days: int | None = None
    minimum_hours: int | None = None
    pass_percentage: int | None = None
    maximum_mark: int | None = None
    pass_mark: int | None = None
    series: str | None = None
    sire_elements: str | None = None
    rightship_dbms_elements: str | None = None
    tmsa_elements: str | None = None
    cdi_elements: str | None = None
    stcw_elements: str | None = None
    approved_by_classnk: str | None = None
