-- ============================================
-- ELIMINAR TABLAS EN ORDEN CORRECTO
-- ============================================
-- ============================================
-- TABLA: groups
-- Descripción: Almacena los grupos de usuarios y archivos
-- ============================================
DROP TABLE IF EXISTS `groups`;
CREATE TABLE `groups` (
  `group_id` int(11) NOT NULL AUTO_INCREMENT,
  `group_ent_id` int(11) DEFAULT 1 COMMENT 'ID de la entidad/empresa',
  `group_name` varchar(255) NOT NULL COMMENT 'Nombre del grupo',
  `group_description` text DEFAULT NULL COMMENT 'Descripción del grupo',
  `group_state` tinyint(1) NOT NULL DEFAULT 1 COMMENT '0=Inactivo, 1=Activo',
  `group_created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha de creación',
  `group_updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Fecha de actualización',
  PRIMARY KEY (`group_id`),
  KEY `idx_group_ent_id` (`group_ent_id`),
  KEY `idx_group_state` (`group_state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Grupos de usuarios y archivos';

-- ============================================
-- TABLA: groups_users
-- Descripción: Relación entre grupos y usuarios
-- ============================================
DROP TABLE IF EXISTS `groups_users`;
CREATE TABLE `groups_users` (
  `group_user_group_id` int(11) NOT NULL COMMENT 'ID del grupo',
  `group_user_user_id` int(11) NOT NULL COMMENT 'ID del usuario',
  KEY `idx_gu_group_id` (`group_user_group_id`),
  KEY `idx_gu_user_id` (`group_user_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Asignación de usuarios a grupos';


-- ============================================
-- TABLA: groups_files
-- Descripción: Relación entre grupos y archivos compatibles
-- ============================================
DROP TABLE IF EXISTS `groups_files`;
CREATE TABLE `groups_files` (
  `group_file_group_id` int(11) NOT NULL COMMENT 'ID del grupo',
  `group_file_file_id` int(11) NOT NULL COMMENT 'ID del archivo',
  `group_file_order` int(11) NOT NULL DEFAULT 0 COMMENT 'Orden del archivo en el grupo',
  KEY `idx_gf_group_id` (`group_file_group_id`),
  KEY `idx_gf_file_id` (`group_file_file_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Asignación de archivos a grupos';
