import { DateTime } from 'luxon'
import { BaseModel, column } from '@adonisjs/lucid/orm'
import { PublicTrackStatus } from '../../types/enum.js'

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

  @column()
  declare order_id: number

  @column({
    serialize: (value) => {
      return {
        id: value,
        name: PublicTrackStatus[value as keyof typeof PublicTrackStatus],
      }
    },
  })
  declare status: PublicTrackStatus

  @column()
  declare tracking_details: string

  @column.dateTime({ autoCreate: true })
  declare created_at: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  declare updated_at: DateTime
}
