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
 | |
| }
 | 
