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 @column({ serializeAs: null }) declare studentId: number @belongsTo(() => Examiner) declare examiner: BelongsTo @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 @column({ serializeAs: null }) declare subjectId: number @belongsTo(() => Room) declare room: BelongsTo @column({ serializeAs: null }) declare roomId: number @column() declare grade: number @column() declare content: string @column() declare comment: string @hasMany(() => ColleAttachment) declare attachments: HasMany // Time data @column.dateTime() declare date: DateTime @column.dateTime({ autoCreate: true }) declare createdAt: DateTime @column.dateTime({ autoCreate: true, autoUpdate: true }) declare updatedAt: DateTime }