-- Custom content modules and form templates (super admin). Idempotent; run once against the application database.
CREATE TABLE IF NOT EXISTS `ContentModule` (
  `id` VARCHAR(191) NOT NULL,
  `key` VARCHAR(30) NOT NULL,
  `label` VARCHAR(60) NOT NULL,
  `plural` VARCHAR(60) NOT NULL,
  `description` VARCHAR(200) NOT NULL,
  `titleLabel` VARCHAR(60) NOT NULL,
  `supportsCategories` BOOLEAN NOT NULL DEFAULT false,
  `supportsFeaturedImage` BOOLEAN NOT NULL DEFAULT true,
  `fields` JSON NOT NULL,
  `active` BOOLEAN NOT NULL DEFAULT true,
  `createdById` VARCHAR(191) NOT NULL,
  `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  `updatedAt` DATETIME(3) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `ContentModule_key_key` (`key`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `FormTemplate` (
  `id` VARCHAR(191) NOT NULL,
  `name` VARCHAR(120) NOT NULL,
  `description` VARCHAR(300) NOT NULL,
  `fields` JSON NOT NULL,
  `consentText` VARCHAR(500) NULL,
  `successMessage` VARCHAR(500) NULL,
  `createdById` VARCHAR(191) NOT NULL,
  `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  `updatedAt` DATETIME(3) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
