150 lines
2.6 KiB
TypeScript
150 lines
2.6 KiB
TypeScript
// 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;
|
|
}
|