Files
microservice/schemas/CredencialSchema.py

53 lines
2.0 KiB
Python

from pydantic import BaseModel, Field, field_validator
from typing import Optional
from uuid import UUID
class CredencialBaseSchema(BaseModel):
id: str = Field(..., description="UUID de la credencial")
user: str = Field(..., description="Usuario de la credencial")
password: str = Field(..., description="Contraseña de la credencial")
efirma: str = Field(..., description="E-firma de la credencial")
key: str = Field(..., description="Key de la credencial")
cer: str = Field(..., description="Cer de la credencial")
is_active: bool = Field(..., description="Indica si la credencial está activa")
organizacion: UUID = Field(..., description="ID de la organización asociada")
@field_validator('id')
def validate_id(cls, v):
if not v or not isinstance(v, str):
raise ValueError('id must be a non-empty string')
return v
@field_validator('user')
def validate_user(cls, v):
if not v or not isinstance(v, str):
raise ValueError('user must be a non-empty string')
return v
@field_validator('password')
def validate_password(cls, v):
if not v or not isinstance(v, str):
raise ValueError('password must be a non-empty string')
return v
@field_validator('efirma')
def validate_efirma(cls, v):
if not v or not isinstance(v, str):
raise ValueError('efirma must be a non-empty string')
return v
@field_validator('key')
def validate_key(cls, v):
if not v or not isinstance(v, str):
raise ValueError('key must be a non-empty string')
return v
@field_validator('cer')
def validate_cer(cls, v):
if not v or not isinstance(v, str):
raise ValueError('cer must be a non-empty string')
return v
@field_validator('organizacion')
def validate_organizacion(cls, v):
if not v or not isinstance(v, UUID):
raise ValueError('organizacion must be a valid UUID')
return v