Coverage for backend \ app \ Caja \ schemas \ cajaSchemas.py: 100.00%

27 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2025-12-29 16:13 -0500

1from pydantic import BaseModel, Field, validator 

2from typing import Dict, Optional, List 

3from datetime import datetime, date 

4from app.Usuarios.schemas.usuarioSchemas import UsuarioPublicoSchema 

5 

6class CajaCrearSchema(BaseModel): 

7 # Enviar únicamente el monto inicial como número (ej. 95.0) 

8 montoInicial: float = Field(..., example=95.0) 

9 

10 class Config: 

11 schema_extra = { 

12 "example": { 

13 "montoInicial": 95.0, 

14 "montoFinal": 120.5 

15 } 

16 } 

17 

18class CajaCerrarSchema(BaseModel): 

19 # Enviar únicamente el monto final declarado como número (ej. 120.5) 

20 montoFinal: float = Field(..., example=120.5) 

21 

22class CajaHistorialRespuestaSchema(BaseModel): 

23 idCaja: int 

24 usuario: Optional[UsuarioPublicoSchema] = None 

25 fechaAperturaCaja: datetime 

26 fechaCierreCaja: Optional[datetime] = None 

27 montoInicialDeclarado: float 

28 montoCierreDeclarado: Optional[float] = None 

29 montoCierreSistema: Optional[float] = None 

30 diferenciaCaja: Optional[float] = None 

31 estadoCaja: str 

32 detalle: Optional[str] = None 

33 

34 class Config: 

35 from_attributes = True 

36 

37class CajaListaRespuestaSchema(BaseModel): 

38 cajas: List[CajaHistorialRespuestaSchema] = [] 

39 

40 class Config: 

41 from_attributes = True