""" Options: Date: 2025-06-07 17:41:08 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: DefinicionCuboRQ.* #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 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 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 PivotGridConf: codigo: Decimal = decimal.Decimal(0) nombre: Optional[str] = None crear_chart: Optional[str] = None configuration: Optional[str] = None chart: Optional[str] = None observaciones: Optional[str] = None id_vista: Decimal = decimal.Decimal(0) usuario: Optional[str] = None fecha_creacion: datetime.datetime = datetime.datetime(1, 1, 1) @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DefinicionCuboRS: tabla: Optional[Tabla] = None descripcion: Optional[str] = None filtros: Optional[List[Columna]] = None filas: Optional[List[Columna]] = None columnas: Optional[List[Columna]] = None calculos: Optional[List[Columna]] = None parametros: Optional[List[Columna]] = None lookups: Optional[List[DetalleJoinTabla]] = None dx_pivot_grid: Optional[Dict[str, Object]] = None dx_chart: Optional[Dict[str, Object]] = None forma_parametros: Optional[dxForm] = None pivot_grid_conf: Optional[PivotGridConf] = None error: Optional[str] = None # @Route("/Utilidades/Consultas/Cubos/Definicion") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DefinicionCuboRQ(IReturn[DefinicionCuboRS]): id_vista: int = 0 id_pivot: int = 0 datos_lookups: bool = False lenguaje: Optional[Lenguajes] = None versiones_lookup_cliente: Optional[List[VersionLookup]] = None