Files
Jonathan Miller 99871a2ff6
Generic: Project CI / Tests (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Report Issues (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Successful in 7s
Generic: Project CI / Lint & Validate (push) Successful in 12s
feat: scaffold Joomla package structure (#1, #2)
4 sub-extensions: com, system plugin, webservices, content plugin.
4 DB tables: forms, fields, submissions, notifications.
2026-06-11 12:02:14 -05:00

68 lines
3.1 KiB
SQL

CREATE TABLE IF NOT EXISTS `#__mokosuiteforms_forms` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NOT NULL DEFAULT '',
`alias` VARCHAR(400) NOT NULL DEFAULT '',
`description` TEXT,
`config` TEXT COMMENT 'JSON form configuration',
`email_admin` VARCHAR(255) DEFAULT NULL,
`email_submitter_field` INT UNSIGNED DEFAULT NULL,
`css_class` VARCHAR(255) DEFAULT '',
`published` TINYINT(1) NOT NULL DEFAULT 1,
`ordering` INT NOT NULL DEFAULT 0,
`checked_out` INT UNSIGNED DEFAULT NULL,
`checked_out_time` DATETIME DEFAULT NULL,
`created_by` INT NOT NULL DEFAULT 0,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_mokosuiteforms_forms_published` (`published`),
KEY `idx_mokosuiteforms_forms_alias` (`alias`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `#__mokosuiteforms_fields` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`form_id` INT UNSIGNED NOT NULL,
`title` VARCHAR(255) NOT NULL DEFAULT '',
`name` VARCHAR(255) NOT NULL DEFAULT '',
`field_type` VARCHAR(50) NOT NULL DEFAULT 'text',
`config` TEXT COMMENT 'JSON field config (placeholder, options, validation)',
`required` TINYINT(1) NOT NULL DEFAULT 0,
`css_class` VARCHAR(255) DEFAULT '',
`conditional_field_id` INT UNSIGNED DEFAULT NULL,
`conditional_value` VARCHAR(255) DEFAULT NULL,
`page_number` INT UNSIGNED NOT NULL DEFAULT 1,
`published` TINYINT(1) NOT NULL DEFAULT 1,
`ordering` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_mokosuiteforms_fields_form` (`form_id`),
KEY `idx_mokosuiteforms_fields_ordering` (`form_id`, `ordering`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `#__mokosuiteforms_submissions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`form_id` INT UNSIGNED NOT NULL,
`submitted_by` INT NOT NULL DEFAULT 0,
`ip_address` VARCHAR(45) DEFAULT NULL,
`user_agent` VARCHAR(512) DEFAULT NULL,
`data` MEDIUMTEXT COMMENT 'JSON field_id => value pairs',
`status` VARCHAR(20) NOT NULL DEFAULT 'new',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_mokosuiteforms_submissions_form` (`form_id`),
KEY `idx_mokosuiteforms_submissions_status` (`status`),
KEY `idx_mokosuiteforms_submissions_created` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `#__mokosuiteforms_notifications` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`form_id` INT UNSIGNED NOT NULL,
`event` VARCHAR(50) NOT NULL DEFAULT 'on_submit',
`recipient_type` VARCHAR(20) NOT NULL DEFAULT 'admin',
`recipient_email` VARCHAR(255) DEFAULT NULL,
`subject_template` VARCHAR(500) DEFAULT NULL,
`body_template` TEXT,
`published` TINYINT(1) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `idx_mokosuiteforms_notifications_form` (`form_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;