Primer version funcional

This commit is contained in:
Administrador Ibiza
2025-12-29 23:37:11 -06:00
commit 5289fd4133
294 changed files with 111418 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
-- Migration to add total_amount to finance_collection_concepts table
ALTER TABLE `finance_collection_concepts`
ADD COLUMN `total_amount` DECIMAL(10, 2) NULL DEFAULT NULL AFTER `description`;

View File

@@ -0,0 +1,11 @@
-- Migration to create expense_concept_allocations table
CREATE TABLE `expense_concept_allocations` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`expense_id` INT NOT NULL,
`concept_id` INT NOT NULL,
`amount` DECIMAL(10, 2) NOT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`expense_id`) REFERENCES `expenses`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`concept_id`) REFERENCES `finance_collection_concepts`(`id`) ON DELETE CASCADE,
UNIQUE KEY `unique_expense_concept_allocation` (`expense_id`, `concept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

View File

@@ -0,0 +1,19 @@
-- Migración para relacionar gastos con conceptos globales
-- Permite que un gasto se asocie a uno o varios conceptos globales
-- Esto permite calcular el balance correcto por concepto: (Recaudado - Gastado)
-- Tabla de relación muchos-a-muchos: gastos <-> conceptos globales
CREATE TABLE IF NOT EXISTS `expense_concept_collections` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`expense_id` INT NOT NULL,
`concept_id` INT NOT NULL,
`amount` DECIMAL(10,2) NOT NULL COMMENT 'Monto del gasto asignado a este concepto',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (`expense_id`) REFERENCES `expenses`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`concept_id`) REFERENCES `finance_collection_concepts`(`id`) ON DELETE CASCADE,
UNIQUE KEY `unique_expense_concept` (`expense_id`, `concept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Índice para optimizar consultas
CREATE INDEX idx_expense_concept_expense ON expense_concept_collections(expense_id);
CREATE INDEX idx_expense_concept_concept ON expense_concept_collections(concept_id);

2947
database/schema.sql Executable file

File diff suppressed because it is too large Load Diff