29 lines
719 B
TypeScript
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
|
|
}
|