import { EVENTS } from '#services/notification_service' import { BaseModel, column } from '@adonisjs/lucid/orm' import type { PushSubscription } from 'web-push' export default class Subscription extends BaseModel { @column({ isPrimary: true }) declare id: number @column({ serializeAs: null }) declare userId: number @column() declare device: string @column({ serialize: (events: number) => Object.entries(EVENTS).map(([key, value]) => ({ id: key, enabled: (events & value) !== 0 })), }) declare events: number @column({ serializeAs: null }) declare data: PushSubscription @column({ serializeAs: null }) declare failedAttempts: number @column() declare enabled: boolean }