feat: Implement student CRUD operations in admin panel with dedicated API routes and updated Prisma schema.

This commit is contained in:
kertenkerem
2026-01-08 01:52:00 +03:00
parent b7f98ed3ad
commit 6880c738f9
11 changed files with 251 additions and 153 deletions

View File

@@ -19,12 +19,12 @@ model Branch {
name String
address String?
phone String?
instructors Instructor[] // Implicit many-to-many
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
classes DanceClass[]
lessons Lesson[]
students Student[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
instructors Instructor[] @relation("BranchToInstructor")
}
model Instructor {
@@ -32,41 +32,41 @@ model Instructor {
name String
bio String?
phone String?
branches Branch[] // Implicit many-to-many
classes DanceClass[]
lessons Lesson[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
classes DanceClass[]
lessons Lesson[]
branches Branch[] @relation("BranchToInstructor")
}
model DanceClass {
id String @id @default(uuid())
id String @id @default(uuid())
name String
description String?
branchId String
branch Branch @relation(fields: [branchId], references: [id])
instructorId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
instructor Instructor? @relation(fields: [instructorId], references: [id])
lessons Lesson[]
branch Branch @relation(fields: [branchId], references: [id])
fees Fee[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
lessons Lesson[]
}
model Lesson {
id String @id @default(uuid())
name String? // Optional name e.g. "Special Workshop"
id String @id @default(uuid())
name String?
startTime DateTime
endTime DateTime
type String // GROUP, PRIVATE
type String
branchId String
branch Branch @relation(fields: [branchId], references: [id])
instructorId String
instructor Instructor @relation(fields: [instructorId], references: [id])
classId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
class DanceClass? @relation(fields: [classId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
instructor Instructor @relation(fields: [instructorId], references: [id])
branch Branch @relation(fields: [branchId], references: [id])
}
model Fee {
@@ -74,11 +74,11 @@ model Fee {
name String
amount Float
currency String @default("TRY")
type String // MONTHLY, PER_LESSON, PACKAGE
type String
classId String?
class DanceClass? @relation(fields: [classId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
class DanceClass? @relation(fields: [classId], references: [id])
}
model Student {
@@ -88,7 +88,7 @@ model Student {
phone String
birthDate DateTime
branchId String?
branch Branch? @relation(fields: [branchId], references: [id])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
branch Branch? @relation(fields: [branchId], references: [id])
}