api/app/models/subscription.ts
2025-08-20 12:22:11 +02:00

29 lines
719 B
TypeScript

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
}