""" Options: Date: 2025-06-07 18:09:45 Version: 8.12 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://soluser-recaudo.sgsas.co #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: FormasDinamicasRQ.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum class Lenguajes(str, Enum): ES = 'ES' PT = 'PT' EN = 'EN' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class VersionLookup: cod_lookup: Decimal = decimal.Decimal(0) version: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Forma: codigo: Decimal = decimal.Decimal(0) nombre: Optional[str] = None descripcion: Optional[str] = None codigo_tabla: int = 0 codigo_consulta: int = 0 codigo_ayuda: int = 0 tipo: Optional[str] = None alto: int = 0 ancho: int = 0 redimensionar: Optional[str] = None blob_layout: int = 0 solo_lectura: Optional[str] = None lookups_con_codigo: Optional[str] = None blob_layout_json: int = 0 info_adicional: Optional[str] = None where_adicional: Optional[str] = None procedimiento_guardar: Optional[str] = None ws_guardar: Optional[str] = None ws_validacion: Optional[str] = None procedimiento_validaciones: Optional[str] = None link_ayuda: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DefinicionTabla: tabla: Optional[Tabla] = None columnas: Optional[List[Columna]] = None lookups: Optional[List[DetalleJoinTabla]] = None frames: Optional[List[Frame]] = None detalle_llave: Optional[List[DetalleIndices]] = None form: Optional[dxForm] = None data_grid: Optional[dxDataGrid] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DetalleForma: codigo: Decimal = decimal.Decimal(0) campos1: Optional[List[str]] = None campos2: Optional[List[str]] = None operadores: Optional[List[str]] = None tabla_detalle: Optional[DefinicionTabla] = None tipo_captura: Optional[str] = None forma_captura: int = 0 codigo_archivo: int = 0 tabla_archivo: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FormasDinamicasRS: forma: Optional[Forma] = None maestro: Optional[DefinicionTabla] = None detalles: Optional[List[DetalleForma]] = None # @Route("/Utilidades/Formas/Definicion") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class FormasDinamicasRQ(IReturn[FormasDinamicasRS]): codigo: int = 0 datos_lookups: bool = False lenguaje: Optional[Lenguajes] = None versiones_lookup_cliente: Optional[List[VersionLookup]] = None