new features
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Literal
|
||||
from uuid import UUID
|
||||
|
||||
from cpv3.common.schemas import Schema
|
||||
|
||||
|
||||
NotificationTypeEnum = Literal["task_progress", "task_complete", "task_failed"]
|
||||
|
||||
|
||||
class NotificationCreate(Schema):
|
||||
user_id: UUID
|
||||
job_id: UUID | None = None
|
||||
project_id: UUID | None = None
|
||||
notification_type: NotificationTypeEnum
|
||||
title: str
|
||||
message: str | None = None
|
||||
payload: dict | None = None
|
||||
|
||||
|
||||
class NotificationRead(Schema):
|
||||
id: UUID
|
||||
user_id: UUID
|
||||
job_id: UUID | None
|
||||
project_id: UUID | None
|
||||
notification_type: NotificationTypeEnum
|
||||
title: str
|
||||
message: str | None
|
||||
payload: dict | None
|
||||
is_read: bool
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class NotificationUpdate(Schema):
|
||||
is_read: bool | None = None
|
||||
|
||||
|
||||
class WebSocketMessage(Schema):
|
||||
"""JSON shape pushed over WebSocket."""
|
||||
|
||||
event: str
|
||||
notification_id: UUID | None = None
|
||||
job_id: UUID | None = None
|
||||
project_id: UUID | None = None
|
||||
job_type: str | None = None
|
||||
status: str | None = None
|
||||
progress_pct: float | None = None
|
||||
message: str | None = None
|
||||
title: str | None = None
|
||||
created_at: datetime | None = None
|
||||
Reference in New Issue
Block a user