feat(repairs): add status timeline and public link preparation

This commit is contained in:
Schubert Ferenc 2026-07-04 12:25:06 +02:00
parent e9ec207617
commit 09cce1f2b6
22 changed files with 1027 additions and 28 deletions

View file

@ -129,6 +129,8 @@ class RepairStatusHistoryResponse(BaseModel):
new_status: str
note: str | None
actor_user_id: int | None
actor_username: str = ""
actor_display_name: str = ""
created_at: datetime
model_config = ConfigDict(from_attributes=True)
@ -160,3 +162,61 @@ class RepairIntakeResponse(BaseModel):
repair_number: str
status: RepairStatus
message: str
class RepairPublicLinkResponse(BaseModel):
is_active: bool
token_hint: str | None = None
expires_at: datetime | None = None
last_used_at: datetime | None = None
created_at: datetime | None = None
revoked_at: datetime | None = None
public_status_path: str | None = None
class RepairPublicLinkCreateResponse(RepairPublicLinkResponse):
token: str
public_status_path: str
class RepairPublicStatusHistoryItem(BaseModel):
status: RepairStatus
status_label: str
created_at: datetime
class RepairPublicStatusResponse(BaseModel):
repair_number: str
public_status_label: str
device_manufacturer: str
device_model: str
status_history_public: list[RepairPublicStatusHistoryItem]
updated_at: datetime
class RepairNotificationTemplateResponse(BaseModel):
event_type: str
status: RepairStatus | None = None
subject: str
text: str
html: str | None = None
class RepairNotificationEventResponse(BaseModel):
id: int
repair_id: int
event_type: str
channel: str
recipient: str
subject: str
status: str
error_message: str | None
created_at: datetime
sent_at: datetime | None
model_config = ConfigDict(from_attributes=True)
class RepairNotificationOverviewResponse(BaseModel):
templates: list[RepairNotificationTemplateResponse]
events: list[RepairNotificationEventResponse]