feat: Funcion de sistema tenants

This commit is contained in:
2026-02-23 13:01:24 -07:00
parent ceea67eb2b
commit 1ccc39732b
58 changed files with 1889 additions and 315 deletions

View File

@@ -4,8 +4,8 @@ Ticket Schemas - ServiceManagerWeb
Pydantic schemas para gestión de tickets y comentarios.
"""
from pydantic import BaseModel, ConfigDict
from typing import Optional
from pydantic import BaseModel, ConfigDict, model_validator
from typing import Optional, Literal
from datetime import datetime
@@ -15,7 +15,23 @@ class TicketCreate(BaseModel):
description: str
category_id: Optional[str] = None
affected_system_id: Optional[str] = None
priority: str = "MEDIUM"
priority: Literal["LOW", "MEDIUM", "HIGH", "URGENT"] = "MEDIUM"
contact_email: Optional[str] = None
contact_phone: Optional[str] = None
@model_validator(mode="before")
@classmethod
def _accept_legacy_fields(cls, data):
if not isinstance(data, dict):
return data
if "subject" not in data and "title" in data:
data["subject"] = data["title"]
if "affected_system_id" not in data and "system_id" in data:
data["affected_system_id"] = data["system_id"]
return data
class TicketUpdate(BaseModel):
@@ -39,9 +55,15 @@ class TicketResponse(BaseModel):
status: str
priority: str
category_id: Optional[str] = None
category_name: Optional[str] = None
affected_system_id: Optional[str] = None
system_id: Optional[str] = None
affected_system_name: Optional[str] = None
contact_email: Optional[str] = None
contact_phone: Optional[str] = None
created_by: str
assigned_to: Optional[str] = None
assigned_to_name: Optional[str] = None
created_at: datetime
updated_at: datetime
sla_response_due: Optional[datetime] = None