// API Types matching backend models export interface GradingCategory { name: string; weight: number; color?: string; } export interface Subject { _id: string; name: string; grading_categories: GradingCategory[]; color?: string; teacher?: string; grade_system?: string; target_grade?: number; target_grade_max?: number; created_at: string; updated_at: string; } export interface SubjectCreate { name: string; grading_categories: GradingCategory[]; color?: string; teacher?: string; grade_system?: string; target_grade?: number; target_grade_max?: number; } export interface SubjectUpdate { name?: string; grading_categories?: GradingCategory[]; color?: string; teacher?: string; grade_system?: string; target_grade?: number; target_grade_max?: number; } export interface Grade { _id: string; subject_id: string; category_name: string; grade: number; max_grade: number; weight_in_category: number; name?: string; date: string; notes?: string; created_at: string; updated_at: string; } export interface GradeCreate { subject_id: string; category_name: string; grade: number; max_grade: number; weight_in_category?: number; name?: string; date?: string; notes?: string; } export interface GradeUpdate { category_name?: string; grade?: number; max_grade?: number; weight_in_category?: number; name?: string; date?: string; notes?: string; } export interface ReportPeriod { _id: string; name: string; start_date: string; end_date: string; created_at: string; updated_at: string; } export interface ReportPeriodCreate { name: string; start_date: string; end_date: string; } export interface ReportPeriodUpdate { name?: string; start_date?: string; end_date?: string; } export interface TeacherGrade { _id: string; subject_id: string; period_id: string; grade: number; max_grade: number; notes?: string; created_at: string; updated_at: string; } export interface TeacherGradeCreate { subject_id: string; period_id: string; grade: number; max_grade: number; notes?: string; } export interface TeacherGradeUpdate { grade?: number; max_grade?: number; notes?: string; } export interface User { _id: string; email: string; username: string; created_at: string; } export interface UserLogin { email: string; password: string; } export interface UserRegister { email: string; username: string; password: string; } export interface AuthResponse { access_token: string; token_type: string; user: User; } export interface ApiError { detail: string; }