29 lines
885 B
Python
29 lines
885 B
Python
"""Esquemas Pydantic para retroalimentación ciudadana."""
|
|
from typing import Optional
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class FeedbackCreate(BaseModel):
|
|
"""Cuerpo enviado por el ciudadano al crear una queja/sugerencia.
|
|
|
|
Importante: NUNCA se acepta driver_id; solo el número de la unidad.
|
|
"""
|
|
|
|
address_id: Optional[str] = None # UUID
|
|
type: str = Field(min_length=1, max_length=40)
|
|
rating: int = Field(ge=1, le=5)
|
|
# Llega como string ("101") desde Flutter; Pydantic lo coacciona a int.
|
|
target_unit_id: Optional[int] = None
|
|
message: Optional[str] = Field(default=None, max_length=1000)
|
|
|
|
|
|
class FeedbackOut(BaseModel):
|
|
id: str
|
|
user_id: str
|
|
address_id: Optional[str] = None
|
|
type: str
|
|
target_unit_id: Optional[int] = None
|
|
message: Optional[str] = None
|
|
rating: Optional[int] = None
|
|
created_at: Optional[str] = None
|