Skip to content

Commit

Permalink
fix: model types
Browse files Browse the repository at this point in the history
  • Loading branch information
SKairinos committed Sep 6, 2024
1 parent 29c7672 commit ce0b15a
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions src/api/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,49 +16,49 @@ export type User = Model<
is_staff: boolean
is_active: boolean
date_joined: Date
requesting_to_join_class?: string
teacher?: Teacher
student?: Student
requesting_to_join_class?: Class["id"]
teacher?: Omit<Teacher, "user">
student?: Omit<Student, "user" | "auto_gen_password">
}
>

export type TeacherUser<Fields = User> = Fields & {
email: string
last_name: string
teacher: Teacher
student: undefined
teacher: NonNullable<User["teacher"]>
student?: undefined
}

export type SchoolTeacherUser<Fields = User> = TeacherUser<Fields> & {
teacher: SchoolTeacher
teacher: Omit<SchoolTeacher, "user">
}

export type AdminSchoolTeacherUser<Fields = User> =
SchoolTeacherUser<Fields> & {
teacher: AdminSchoolTeacher
teacher: Omit<AdminSchoolTeacher, "user">
}

export type NonAdminSchoolTeacherUser<Fields = User> =
SchoolTeacherUser<Fields> & {
teacher: NonAdminSchoolTeacher
teacher: Omit<NonAdminSchoolTeacher, "user">
}

export type NonSchoolTeacherUser<Fields = User> = TeacherUser<Fields> & {
teacher: NonSchoolTeacher
teacher: Omit<NonSchoolTeacher, "user">
}

export type StudentUser<Fields = User> = Fields & {
email: undefined
last_name: undefined
teacher: undefined
student: Student
email?: undefined
last_name?: undefined
teacher?: undefined
student: NonNullable<User["student"]>
}

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

// -----------------------------------------------------------------------------
Expand All @@ -68,14 +68,14 @@ export type IndependentUser<Fields = User> = Fields & {
export type Teacher = Model<
number,
{
user: number
school?: number
user: User["id"]
school?: School["id"]
is_admin: boolean
}
>

export type SchoolTeacher<Fields = Teacher> = Fields & {
school: number
school: School["id"]
}

export type AdminSchoolTeacher<Fields = Teacher> = SchoolTeacher<Fields> & {
Expand All @@ -87,7 +87,7 @@ export type NonAdminSchoolTeacher<Fields = Teacher> = SchoolTeacher<Fields> & {
}

export type NonSchoolTeacher<Fields = Teacher> = Fields & {
school: undefined
school?: undefined
}

// -----------------------------------------------------------------------------
Expand All @@ -97,9 +97,9 @@ export type NonSchoolTeacher<Fields = Teacher> = Fields & {
export type Student = Model<
number,
{
user: number
school: number
klass: string
user: User["id"]
school: School["id"]
klass: Class["id"]
auto_gen_password: string
}
>
Expand All @@ -117,8 +117,8 @@ export type Class = Model<
string,
{
name: string
teacher: number
school: number
teacher: Teacher["id"]
school: School["id"]
read_classmates_data: boolean
receive_requests_until?: Date
}
Expand All @@ -127,15 +127,15 @@ export type Class = Model<
export type AuthFactor = Model<
number,
{
user: number
user: User["id"]
type: "otp"
}
>

export type OtpBypassToken = Model<
number,
{
user: number
user: User["id"]
token: string
}
>

0 comments on commit ce0b15a

Please sign in to comment.