api/app/models/user.ts
2025-08-19 17:04:03 +02:00

41 lines
1,021 B
TypeScript

import { DateTime } from 'luxon'
import { BaseModel, column, computed } from '@adonisjs/lucid/orm'
import { DbRememberMeTokensProvider } from '@adonisjs/auth/session'
export default class User extends BaseModel {
static rememberMeTokens = DbRememberMeTokensProvider.forModel(User)
@column({ isPrimary: true })
declare id: number
@column()
declare className: string
@column({ serializeAs: null })
declare firstName: string
@column({ serializeAs: null })
declare lastName: string
@computed()
get fullName() {
return `${this.firstName} ${this.lastName}`
}
@column({ serializeAs: null })
declare email: string
@column({ serializeAs: null })
declare extras: Record<string, any>
@computed()
get preferences(): { name: string; emoji: string; color: string }[] {
return this.extras?.preferences || []
}
@column.dateTime({ autoCreate: true })
declare createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
declare updatedAt: DateTime | null
}