feat: Implement Novu notification system

This commit is contained in:
gpt-engineer-app[bot]
2025-10-01 12:26:12 +00:00
parent cae084964e
commit e2f0df22cc
13 changed files with 1407 additions and 253 deletions

View File

@@ -130,6 +130,8 @@ export type Database = {
approval_mode: string | null
content: Json
created_at: string
escalated: boolean | null
escalated_at: string | null
escalated_by: string | null
escalation_reason: string | null
id: string
@@ -146,6 +148,8 @@ export type Database = {
approval_mode?: string | null
content: Json
created_at?: string
escalated?: boolean | null
escalated_at?: string | null
escalated_by?: string | null
escalation_reason?: string | null
id?: string
@@ -162,6 +166,8 @@ export type Database = {
approval_mode?: string | null
content?: Json
created_at?: string
escalated?: boolean | null
escalated_at?: string | null
escalated_by?: string | null
escalation_reason?: string | null
id?: string
@@ -184,6 +190,36 @@ export type Database = {
},
]
}
email_aliases: {
Row: {
created_at: string
description: string | null
email: string
id: string
key: string
owner_id: string | null
updated_at: string
}
Insert: {
created_at?: string
description?: string | null
email: string
id?: string
key: string
owner_id?: string | null
updated_at?: string
}
Update: {
created_at?: string
description?: string | null
email?: string
id?: string
key?: string
owner_id?: string | null
updated_at?: string
}
Relationships: []
}
locations: {
Row: {
city: string | null
@@ -223,6 +259,125 @@ export type Database = {
}
Relationships: []
}
notification_channels: {
Row: {
channel_type: string
configuration: Json | null
created_at: string
description: string | null
id: string
is_enabled: boolean | null
name: string
updated_at: string
}
Insert: {
channel_type: string
configuration?: Json | null
created_at?: string
description?: string | null
id?: string
is_enabled?: boolean | null
name: string
updated_at?: string
}
Update: {
channel_type?: string
configuration?: Json | null
created_at?: string
description?: string | null
id?: string
is_enabled?: boolean | null
name?: string
updated_at?: string
}
Relationships: []
}
notification_logs: {
Row: {
channel: string
created_at: string
delivered_at: string | null
error_message: string | null
id: string
novu_transaction_id: string | null
payload: Json | null
read_at: string | null
status: string
template_id: string | null
user_id: string
}
Insert: {
channel: string
created_at?: string
delivered_at?: string | null
error_message?: string | null
id?: string
novu_transaction_id?: string | null
payload?: Json | null
read_at?: string | null
status?: string
template_id?: string | null
user_id: string
}
Update: {
channel?: string
created_at?: string
delivered_at?: string | null
error_message?: string | null
id?: string
novu_transaction_id?: string | null
payload?: Json | null
read_at?: string | null
status?: string
template_id?: string | null
user_id?: string
}
Relationships: [
{
foreignKeyName: "notification_logs_template_id_fkey"
columns: ["template_id"]
isOneToOne: false
referencedRelation: "notification_templates"
referencedColumns: ["id"]
},
]
}
notification_templates: {
Row: {
category: string
created_at: string
description: string | null
id: string
is_active: boolean | null
name: string
novu_workflow_id: string | null
updated_at: string
workflow_id: string
}
Insert: {
category: string
created_at?: string
description?: string | null
id?: string
is_active?: boolean | null
name: string
novu_workflow_id?: string | null
updated_at?: string
workflow_id: string
}
Update: {
category?: string
created_at?: string
description?: string | null
id?: string
is_active?: boolean | null
name?: string
novu_workflow_id?: string | null
updated_at?: string
workflow_id?: string
}
Relationships: []
}
park_operating_hours: {
Row: {
closing_time: string | null
@@ -932,6 +1087,39 @@ export type Database = {
}
Relationships: []
}
user_notification_preferences: {
Row: {
channel_preferences: Json
created_at: string
frequency_settings: Json
id: string
novu_subscriber_id: string | null
updated_at: string
user_id: string
workflow_preferences: Json
}
Insert: {
channel_preferences?: Json
created_at?: string
frequency_settings?: Json
id?: string
novu_subscriber_id?: string | null
updated_at?: string
user_id: string
workflow_preferences?: Json
}
Update: {
channel_preferences?: Json
created_at?: string
frequency_settings?: Json
id?: string
novu_subscriber_id?: string | null
updated_at?: string
user_id?: string
workflow_preferences?: Json
}
Relationships: []
}
user_preferences: {
Row: {
accessibility_options: Json