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 @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 }