CREATE TABLE IF NOT EXISTS user_module_permissions (
  user_id BIGINT UNSIGNED NOT NULL,
  module_key VARCHAR(50) NOT NULL,
  created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (user_id, module_key),
  INDEX idx_user_module_permissions_module (module_key),
  CONSTRAINT fk_user_module_permissions_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

INSERT IGNORE INTO user_module_permissions (user_id, module_key)
SELECT users.id, modules.module_key
FROM users
CROSS JOIN (
  SELECT 'dashboard' AS module_key UNION ALL
  SELECT 'portfolios' UNION ALL
  SELECT 'crm' UNION ALL
  SELECT 'demands' UNION ALL
  SELECT 'staff' UNION ALL
  SELECT 'reports' UNION ALL
  SELECT 'logs' UNION ALL
  SELECT 'settings'
) AS modules
WHERE users.deleted_at IS NULL;
