api/app/models/colle.ts
2025-07-30 12:56:52 +02:00

72 lines
1.7 KiB
TypeScript

import { DateTime } from 'luxon'
import { BaseModel, belongsTo, column, hasMany } from '@adonisjs/lucid/orm'
import User from './user.js'
import type { BelongsTo, HasMany } from '@adonisjs/lucid/types/relations'
import Subject from './subject.js'
import Room from './room.js'
import ColleAttachment from './colle_attachment.js'
import Examiner from './examiner.js'
export default class Colle extends BaseModel {
@column({ isPrimary: true })
declare id: number
@belongsTo(() => User, { foreignKey: 'studentId' })
declare student: BelongsTo<typeof User>
@column({ serializeAs: null })
declare studentId: number
@belongsTo(() => Examiner)
declare examiner: BelongsTo<typeof Examiner>
@column({ serializeAs: null })
declare examinerId: number
// @computed()
// get examinerName(): string {
// return this.examiner?.name
// }
// Bjcolle data
@column({ serializeAs: null })
declare bjsecret: string
@column({ serializeAs: null })
declare bjid: string
// Colle data
@belongsTo(() => Subject)
declare subject: BelongsTo<typeof Subject>
@column({ serializeAs: null })
declare subjectId: number
@belongsTo(() => Room)
declare room: BelongsTo<typeof Room>
@column({ serializeAs: null })
declare roomId: number
@column()
declare grade: number
@column()
declare content: string
@column()
declare comment: string
@hasMany(() => ColleAttachment)
declare attachments: HasMany<typeof ColleAttachment>
// Time data
@column.dateTime()
declare date: DateTime
@column.dateTime({ autoCreate: true })
declare createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
declare updatedAt: DateTime
}