Data Dictionary - TUASESOR
Overview
Este diccionario describe el modelo de datos actual de TUASESOR segun docs/database/schema.md.
El esquema contiene:
- Workspaces, membresias, roles y permisos.
- Integraciones OAuth propiedad de perfiles autenticados.
- Catalogos profesionales y clasificacion de perfiles.
- Catalogos contables y operacion de rendiciones de gastos.
- Registro basico de transacciones.
- Tablas documentales y de contenido normalizado que actualmente no forman parte de un flujo activo de la aplicacion.
My Space consulta metadata de Google Drive en vivo y no persiste automaticamente los archivos del provider en documents.
Table: document_types
Catalogo de tipos de documentos usados para clasificar documentos operacionales y respaldos de gastos.
| Field | Type | Description |
|---|---|---|
| id | int4 | Identificador incremental del tipo de documento. |
| code | text | Codigo interno unico del tipo de documento. |
| name | text | Nombre descriptivo del tipo de documento. |
Table: documents
Tabla estructural para documentos incorporados intencionalmente a procesos de TUASESOR. Actualmente esta cerrada para usuarios ordinarios mediante grants y RLS, y no existe un flujo activo que sincronice automaticamente Google Drive hacia esta tabla.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del documento. |
| name | text | Nombre visible del documento. |
| source | text | Origen o provider legacy del documento. |
| external_id | text | Identificador externo entregado por el provider. |
| storage_path | text | Ruta de almacenamiento interno, cuando aplica. |
| web_view_link | text | URL de visualizacion del documento en el provider. |
| mime_type | text | Tipo MIME del archivo. |
| size_bytes | int8 | Tamano del archivo en bytes. |
| modified_time | timestamptz | Fecha de ultima modificacion reportada por el provider. |
| document_type_id | int4 | Tipo de documento asociado. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
| drive_file_id | text | Identificador unico del archivo en Google Drive. |
| modified_at | timestamptz | Fecha de modificacion normalizada del documento. |
| provider | text | Provider documental asociado. |
| profile_id | uuid | Perfil asociado al documento. |
| type | text | Clasificacion operacional adicional del documento. |
| drive_parent_id | text | Carpeta padre en Google Drive. |
| sync_status | text | Estado de sincronizacion del documento. |
| sync_batch_id | uuid | Identificador del lote de sincronizacion. |
| web_content_link | text | URL de descarga o contenido del archivo en el provider. |
| workspace_id | uuid | Workspace al que pertenece el documento. |
| workspace_source_id | uuid | Fuente documental especifica asociada al workspace. |
| entity_type | text | Tipo de entidad de negocio relacionada. |
| entity_id | text | Identificador de la entidad de negocio relacionada. |
Table: transactions
Registro de movimientos financieros basicos asociados opcionalmente a documentos de respaldo.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la transaccion. |
| document_id | uuid | Documento de respaldo asociado. |
| type | text | Tipo de movimiento, por ejemplo ingreso o egreso. |
| date | date | Fecha de la transaccion. |
| amount | numeric | Monto de la transaccion. |
| description | text | Descripcion o glosa del movimiento. |
| document_number | text | Numero del documento relacionado. |
| status | text | Estado operacional o de revision. |
| profile_id | uuid | Perfil asociado a la transaccion. |
| created_at | timestamptz | Fecha de creacion del registro. |
Table: integrations
Integraciones OAuth y conexiones externas asociadas a perfiles de aplicacion.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la integracion. |
| profile_id | uuid | Perfil propietario de la integracion. |
| provider | text | Provider externo de la integracion. |
| access_token | text | Token de acceso OAuth. |
| refresh_token | text | Token de renovacion OAuth. |
| expires_at | timestamptz | Fecha y hora de expiracion del token de acceso. |
| created_at | timestamptz | Fecha de creacion de la integracion. |
| metadata | jsonb | Metadata flexible del provider o cuenta conectada. |
| provider_account_id | text | Identificador de la cuenta en el provider externo. |
| scopes | _text | Lista de scopes autorizados. |
Table: normalized_documents
Tabla estructural y transitoria para contenido documental normalizado. Actualmente no forma parte de un flujo activo de TUASESOR ni debe asumirse como almacenamiento utilizado por cortexa-sdk.
Su evolucion, migracion o reemplazo debe definirse dentro del futuro modelo de persistencia de conocimiento propio de TUASESOR, con aislamiento por workspace, autorizacion, retencion y eliminacion explicitos.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del documento normalizado. |
| document_id | uuid | Documento operacional relacionado. |
| source | text | Origen o provider del documento. |
| external_id | text | Identificador externo del documento en el provider. |
| title | text | Titulo normalizado del documento. |
| filename | text | Nombre de archivo normalizado. |
| mime_type | text | Tipo MIME del documento. |
| content_text | text | Contenido textual normalizado. |
| metadata_json | jsonb | Metadata flexible del proceso de normalizacion. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
| normalized_at | timestamptz | Fecha en que se normalizo el documento. |
| workspace_id | uuid | Workspace al que pertenece el documento normalizado. |
Table: workspaces
Contexto documental operacional autorizado dentro de TUASESOR. Un workspace es independiente del provider documental concreto.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del workspace. |
| name | text | Nombre del workspace. |
| description | text | Descripcion opcional del workspace. |
| created_by | uuid | Perfil o usuario que creo el workspace. |
| created_at | timestamptz | Fecha de creacion del workspace. |
| updated_at | timestamptz | Fecha de ultima actualizacion del workspace. |
Table: workspace_sources
Tabla estructural para representar fuentes externas asociadas a un workspace. Actualmente no existe un flujo activo que sincronice documentos desde estas fuentes ni que dependa operacionalmente de esta tabla.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la fuente documental. |
| workspace_id | uuid | Workspace asociado. |
| provider | text | Provider documental, por ejemplo Google Drive. |
| external_id | text | Identificador externo de la fuente en el provider. |
| root_path | text | Ruta raiz autorizada o sincronizada. |
| metadata_json | jsonb | Metadata flexible del provider. |
| is_active | bool | Indica si la fuente esta activa. |
| last_synced_at | timestamptz | Fecha de la ultima sincronizacion. |
| profile_id | uuid | Perfil asociado a la fuente documental. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Table: workspace_members
Membresias y roles de perfiles dentro de un workspace.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la membresia. |
| workspace_id | uuid | Workspace asociado. |
| profile_id | uuid | Perfil miembro del workspace. |
| role | text | Rol del perfil dentro del workspace. |
| created_at | timestamptz | Fecha de creacion de la membresia. |
Table: profiles
Perfiles de aplicacion asociados 1:1 con auth.users.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del perfil. |
| text | Email unico del perfil. | |
| full_name | text | Nombre completo del usuario. |
| avatar_url | text | URL del avatar del perfil. |
| global_role | text | Rol global dentro de la aplicacion. |
| metadata_json | jsonb | Metadata flexible del perfil. |
| created_at | timestamptz | Fecha de creacion del perfil. |
| updated_at | timestamptz | Fecha de ultima actualizacion del perfil. |
| profile_type | text | Tipo de perfil dentro del dominio de negocio. |
| status | text | Estado del perfil. |
Table: workspace_member_permissions
Permisos granulares asociados a membresias de workspace.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del permiso. |
| workspace_member_id | uuid | Membresia de workspace asociada. |
| permission_key | text | Clave funcional del permiso. |
| granted | bool | Indica si el permiso esta concedido. |
| metadata_json | jsonb | Metadata flexible del permiso. |
| created_at | timestamptz | Fecha de creacion del permiso. |
Table: specialties
Catalogo de especialidades profesionales usado para identidad de marketplace y clasificacion de expertise.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la especialidad. |
| code | text | Codigo unico de la especialidad. |
| name | text | Nombre de la especialidad. |
| category | text | Categoria funcional o profesional de la especialidad. |
| created_at | timestamptz | Fecha de creacion de la especialidad. |
Table: profile_specialties
Relacion muchos-a-muchos entre perfiles y especialidades profesionales.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la relacion. |
| profile_id | uuid | Perfil asociado. |
| specialty_id | uuid | Especialidad asociada. |
| is_primary | bool | Indica si es la especialidad principal del perfil. |
| years_experience | int4 | Anos de experiencia declarados. |
| metadata_json | jsonb | Metadata flexible de la relacion. |
| created_at | timestamptz | Fecha de creacion del registro. |
Table: business_lines
Catalogo por workspace de lineas de negocio usadas en rendiciones de gastos.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la linea de negocio. |
| workspace_id | uuid | Workspace asociado. |
| code | text | Codigo interno de la linea de negocio. |
| name | text | Nombre de la linea de negocio. |
| is_active | bool | Indica si la linea esta activa. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Table: cost_centers
Catalogo por workspace de centros de costo usados en rendiciones de gastos.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del centro de costo. |
| workspace_id | uuid | Workspace asociado. |
| code | text | Codigo interno del centro de costo. |
| name | text | Nombre del centro de costo. |
| is_active | bool | Indica si el centro de costo esta activo. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Table: accounting_accounts
Catalogo por workspace de cuentas contables usadas para clasificar items de rendiciones de gastos.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la cuenta contable. |
| workspace_id | uuid | Workspace asociado. |
| code | text | Codigo contable interno. |
| name | text | Nombre de la cuenta contable. |
| account_type | text | Tipo de cuenta contable. |
| is_active | bool | Indica si la cuenta esta activa. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Table: expense_reports
Rendiciones de gastos completas enviadas dentro de un workspace.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico de la rendicion. |
| workspace_id | uuid | Workspace asociado. |
| report_number | text | Numero de la rendicion. |
| report_year | int4 | Ano contable o operacional de la rendicion. |
| submitted_by_profile_id | uuid | Perfil que envio la rendicion. |
| status | text | Estado de la rendicion. |
| submitted_at | timestamptz | Fecha de envio de la rendicion. |
| reviewed_at | timestamptz | Fecha de revision de la rendicion. |
| reimbursed_at | timestamptz | Fecha de reembolso de la rendicion. |
| notes | text | Notas generales de la rendicion. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Table: expense_report_items
Lineas individuales declaradas dentro de una rendicion de gastos.
| Field | Type | Description |
|---|---|---|
| id | uuid | Identificador unico del item de rendicion. |
| expense_report_id | uuid | Rendicion de gastos asociada. |
| business_line_id | uuid | Linea de negocio asociada. |
| cost_center_id | uuid | Centro de costo asociado. |
| accounting_account_id | uuid | Cuenta contable asociada. |
| expense_date | date | Fecha del gasto. |
| supplier_name | text | Nombre del proveedor. |
| document_type_id | int4 | Tipo de documento de respaldo. |
| document_number | text | Numero del documento de respaldo. |
| total_amount | numeric | Monto total del gasto. |
| description | text | Descripcion del gasto. |
| additional_notes | text | Notas adicionales del item. |
| created_at | timestamptz | Fecha de creacion del registro. |
| updated_at | timestamptz | Fecha de ultima actualizacion del registro. |
Main Relationships
profiles
-> workspace_members
-> workspaces
-> workspace_sources
-> documents
-> normalized_documents
workspaces
-> business_lines
-> cost_centers
-> accounting_accounts
-> expense_reports
-> expense_report_items
Current Model Notes
workspacesdefine el contexto operacional y de aislamiento.workspace_sourcesexiste como estructura para futuras fuentes externas por workspace, pero no participa en un flujo activo de sincronizacion.documentsesta cerrada para usuarios ordinarios y no recibe automaticamente archivos de Google Drive.normalized_documentses una estructura transitoria sin flujo activo de procesamiento o persistencia de conocimiento.profiles,workspace_membersyworkspace_member_permissionsreemplazan el enfoque legacy basado directamente en usuarios.expense_reportsyexpense_report_itemsmodelan el flujo activo de rendiciones con catalogos auxiliares por workspace.