import { DateTime } from 'luxon'
import { BaseModel, column, belongsTo } from '@adonisjs/lucid/orm'
import type { BelongsTo } from '@adonisjs/lucid/types/relations'
import User from '#models/user'

export default class LoginCode extends BaseModel {
  @column({ isPrimary: true })
  declare id: number

  @column()
  declare codeHash: string

  @column()
  declare userId: string

  @column.dateTime()
  declare expiresAt: DateTime

  @column.dateTime()
  declare usedAt: DateTime | null

  @belongsTo(() => User)
  declare user: BelongsTo<typeof User>
}
