""" Options: Date: 2025-06-07 18:05:25 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: DefinicionQueryRQ.* #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 Vista: codigo: Decimal = decimal.Decimal(0) codigo_blob: Decimal = decimal.Decimal(0) nombre: Optional[str] = None descripcion: Optional[str] = None sql: Optional[str] = None codigo_tabla: Decimal = decimal.Decimal(0) guardar_binario: Optional[str] = None tipo_consulta: Optional[str] = None exportacion_default: Optional[str] = None tipo_exportacion: Optional[str] = None parametros_exportacion: int = 0 codigo_ayuda: Optional[str] = None ejecutar_en_adm: Optional[str] = None info_adicional: Optional[str] = None ejec_multiempresa: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Tabla: codigo: Decimal = decimal.Decimal(0) propietario: Optional[str] = None tipo: Optional[str] = None nombre: Optional[str] = None alias: Optional[str] = None descripcion: Optional[str] = None para_reportes: Optional[str] = None crear_al_iniciar: Optional[str] = None campo_empresa: int = 0 campo_unico: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Columna: codigo_tabla: Decimal = decimal.Decimal(0) codigo: Decimal = decimal.Decimal(0) nombre: Optional[str] = None alias: Optional[str] = None descripcion: Optional[str] = None tipo_dato: Optional[str] = None obligatorio_formas: Optional[str] = None hint: Optional[str] = None mayuscula: Optional[str] = None tamano: int = 0 escala: int = 0 tipo: Optional[str] = None vlr_defecto: Optional[str] = None permite_editar: Optional[str] = None orden: int = 0 dinamico: Optional[str] = None clase_control: Optional[str] = None join_lookup: Decimal = decimal.Decimal(0) es_i_d: Optional[str] = None mascara: Optional[str] = None mostrar_en_lista: Optional[str] = None info_adicional: Optional[str] = None where_defecto: Optional[str] = None tiene_resumen: Optional[str] = None formato_resumen: Optional[str] = None tipo_resumen: Optional[str] = None posicion_resumen: Optional[str] = None resumen_en_grupo: Optional[str] = None resumen_en_total: Optional[str] = None indice_grupo: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DetalleJoinTabla: codigo: Decimal = decimal.Decimal(0) campo_a_mostrar: Optional[str] = None campos1: Optional[List[str]] = None campos2: Optional[List[str]] = None operadores: Optional[List[str]] = None datos: Optional[List[Dict[str, Object]]] = None codigo_tabla1: Decimal = decimal.Decimal(0) sql: Optional[str] = None tabla_detalle: Optional[DefinicionTabla] = None vista: Optional[Vista] = None version: Optional[str] = None ordenar: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ValidationRule: type: Optional[str] = None message: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LookupGrid: allow_clearing: bool = False display_expr: Optional[str] = None value_expr: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ColumnGrid: caption: Optional[str] = None data_field: Optional[str] = None data_type: Optional[str] = None visible_index: int = 0 validation_rules: Optional[List[ValidationRule]] = None lookup: Optional[LookupGrid] = None allow_editing: bool = False encode_html: bool = False editor_options: Optional[Dict[str, Object]] = None group_index: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EditingGrid: allow_adding: bool = False allow_deleting: bool = False allow_updating: bool = False mode: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class gridSummaryGroupItems: column: Optional[str] = None display_format: Optional[str] = None show_in_group_footer: bool = False summary_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class gridSummaryTotalItems: column: Optional[str] = None display_format: Optional[str] = None summary_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class gridSummary: group_items: Optional[List[gridSummaryGroupItems]] = None total_items: Optional[List[gridSummaryTotalItems]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class dxDataGrid: columns: Optional[List[ColumnGrid]] = None show_column_lines: bool = False show_row_lines: bool = False row_alternation_enabled: bool = False show_borders: bool = False editing: Optional[EditingGrid] = None summary: Optional[gridSummary] = 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 DefinicionQueryRS: vista: Optional[Vista] = None tabla: Optional[Tabla] = None descripcion: Optional[str] = None columnas: Optional[List[Columna]] = None parametros: Optional[List[Columna]] = None lookups: Optional[List[DetalleJoinTabla]] = None detalles: Optional[List[DetalleJoinTabla]] = None data_grid: Optional[dxDataGrid] = None # @Route("/Utilidades/Consultas/Listados/Definicion") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DefinicionQueryRQ(IReturn[DefinicionQueryRS]): id_vista: int = 0 lenguaje: Optional[Lenguajes] = None datos_lookups: bool = False versiones_lookup_cliente: Optional[List[VersionLookup]] = None