Skip to content

Commit

Permalink
fix model inheritances
Browse files Browse the repository at this point in the history
  • Loading branch information
SKairinos committed Aug 27, 2024
1 parent fdb859d commit 0a96a56
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions src/api/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,36 +23,40 @@ export type User = Model<
>

export type TeacherUser<Fields = User> = Fields & {
email: string
last_name: string
teacher: Teacher
student: undefined
}

export type SchoolTeacherUser<Fields = User> = Fields & {
export type SchoolTeacherUser<Fields = User> = TeacherUser<Fields> & {
teacher: SchoolTeacher
student: undefined
}

export type AdminSchoolTeacherUser<Fields = User> = Fields & {
teacher: AdminSchoolTeacher
student: undefined
}
export type AdminSchoolTeacherUser<Fields = User> =
SchoolTeacherUser<Fields> & {
teacher: AdminSchoolTeacher
}

export type NonAdminSchoolTeacherUser<Fields = User> = Fields & {
teacher: NonAdminSchoolTeacher
student: undefined
}
export type NonAdminSchoolTeacherUser<Fields = User> =
SchoolTeacherUser<Fields> & {
teacher: NonAdminSchoolTeacher
}

export type NonSchoolTeacherUser<Fields = User> = Fields & {
export type NonSchoolTeacherUser<Fields = User> = TeacherUser<Fields> & {
teacher: NonSchoolTeacher
student: undefined
}

export type StudentUser<Fields = User> = Fields & {
email: undefined
last_name: undefined
teacher: undefined
student: Student
}

export type IndependentUser<Fields = User> = Fields & {
email: string
last_name: string
teacher: undefined
student: undefined
}
Expand All @@ -74,13 +78,11 @@ export type SchoolTeacher<Fields = Teacher> = Fields & {
school: number
}

export type AdminSchoolTeacher<Fields = Teacher> = Fields & {
school: number
export type AdminSchoolTeacher<Fields = Teacher> = SchoolTeacher<Fields> & {
is_admin: true
}

export type NonAdminSchoolTeacher<Fields = Teacher> = Fields & {
school: number
export type NonAdminSchoolTeacher<Fields = Teacher> = SchoolTeacher<Fields> & {
is_admin: false
}

Expand Down

0 comments on commit 0a96a56

Please sign in to comment.