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

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

  @column()
  declare awb_number: string

  @column()
  declare tracking_status: string

  @column()
  declare remarks: string

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

  @column()
  declare is_status_updated: boolean

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

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

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