""" Options: Date: 2025-06-07 16:48:34 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: ConsultaTablaRQData.* #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 @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 Frame: codigo: Decimal = decimal.Decimal(0) sql: Optional[str] = None campos1: Optional[List[str]] = None campos2: Optional[List[str]] = None tabla_frame: Optional[DefinicionTabla] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DetalleIndices: codigo_tabla: Decimal = decimal.Decimal(0) nombre_indice: Optional[str] = None codigo_columna: Decimal = decimal.Decimal(0) tipo_calculo: Optional[str] = None secuencia: Optional[str] = None nombre_columna: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ColCountByScreen: lg: int = 0 md: int = 0 sm: int = 0 xs: int = 0 class ItemTypeForm(str, Enum): SIMPLE = 'simple' GROUP = 'group' TABBED = 'tabbed' EMPTY = 'empty' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EmptyItemForm: item_type: Optional[ItemTypeForm] = None visible_index: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class dxForm: col_count_by_screen: Optional[ColCountByScreen] = None label_location: Optional[str] = None read_only: bool = False items: Optional[List[EmptyItemForm]] = 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 # @Route("/Utilidades/Formas/Tabla") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConsultaTablaRQData(IReturn[DefinicionTabla]): codigo: int = 0