// src/server/features/system/db/system_modules.table.ts
// System modules table schema for feature toggling

import { mysqlTable, varchar, boolean, timestamp, uniqueIndex } from 'drizzle-orm/mysql-core';

/**
 * System modules table - stores feature toggle configuration
 * 
 * This table allows for dynamic feature toggling where modules can be
 * enabled/disabled at runtime without code changes.
 */
export const systemModulesTable = mysqlTable('system_modules', {
  id: varchar('id', { length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()),
  moduleId: varchar('module_id', { length: 50 }).notNull().unique(),
  isEnabled: boolean('is_enabled').notNull().default(true),
  createdAt: timestamp('created_at').notNull().defaultNow(),
  updatedAt: timestamp('updated_at').notNull().defaultNow().onUpdateNow(),
}, (table) => ({
  // Unique constraint on module_id to prevent duplicates
  uniqueModuleId: uniqueIndex('unique_module_id').on(table.moduleId),
}));
