export type CoursePlanStatus = "planning" | "active" | "completed" | "paused"

export type CoursePlanSemester = "1" | "2"

export interface CoursePlan {
  id: string
  classId: string
  subjectId: string
  teacherId: string
  academicYearId: string | null
  semester: CoursePlanSemester
  totalHours: number
  completedHours: number
  weeklyHours: number
  startDate: string | null
  endDate: string | null
  syllabus: string | null
  objectives: string | null
  status: CoursePlanStatus
  createdBy: string
  createdAt: string
  updatedAt: string
}

export interface CoursePlanItem {
  id: string
  planId: string
  week: number
  topic: string
  content: string | null
  hours: number
  textbookChapter: string | null
  notes: string | null
  isCompleted: boolean
  completedAt: string | null
  createdAt: string
  updatedAt: string
}

export interface CoursePlanListItem extends CoursePlan {
  className: string | null
  subjectName: string | null
  teacherName: string | null
}

export interface CoursePlanWithItems extends CoursePlanListItem {
  items: CoursePlanItem[]
}

export interface GetCoursePlansParams {
  classId?: string
  teacherId?: string
  subjectId?: string
  status?: CoursePlanStatus
}

export interface ReorderCoursePlanItemInput {
  id: string
  week: number
}
