53 lines
2.0 KiB
Python
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
|
|
|
|
|