148 lines
5.5 KiB
SQL
148 lines
5.5 KiB
SQL
-- Module-System Schema
|
|
-- Erstellt die Tabellen für PrestaShop-kompatible Module
|
|
|
|
-- Module-Tabelle
|
|
CREATE TABLE IF NOT EXISTS `ws_module` (
|
|
`id_module` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(64) NOT NULL,
|
|
`display_name` varchar(255) DEFAULT NULL,
|
|
`description` text,
|
|
`version` varchar(32) DEFAULT '1.0.0',
|
|
`author` varchar(255) DEFAULT 'Unknown',
|
|
`tab` varchar(64) DEFAULT 'administration',
|
|
`need_instance` tinyint(1) DEFAULT 0,
|
|
`bootstrap` tinyint(1) DEFAULT 0,
|
|
`active` tinyint(1) DEFAULT 1,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_module`),
|
|
UNIQUE KEY `name` (`name`),
|
|
KEY `active` (`active`),
|
|
KEY `tab` (`tab`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Hook-Module-Tabelle (Verbindung zwischen Hooks und Modulen)
|
|
CREATE TABLE IF NOT EXISTS `ws_hook_module` (
|
|
`id_hook_module` int(11) NOT NULL AUTO_INCREMENT,
|
|
`hook_name` varchar(64) NOT NULL,
|
|
`module_name` varchar(64) NOT NULL,
|
|
`position` int(11) DEFAULT 0,
|
|
`active` tinyint(1) DEFAULT 1,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_hook_module`),
|
|
UNIQUE KEY `hook_module` (`hook_name`, `module_name`),
|
|
KEY `hook_name` (`hook_name`),
|
|
KEY `module_name` (`module_name`),
|
|
KEY `active` (`active`),
|
|
KEY `position` (`position`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Module-Konfiguration-Tabelle
|
|
CREATE TABLE IF NOT EXISTS `ws_module_config` (
|
|
`id_module_config` int(11) NOT NULL AUTO_INCREMENT,
|
|
`module_name` varchar(64) NOT NULL,
|
|
`config_key` varchar(255) NOT NULL,
|
|
`config_value` text,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_module_config`),
|
|
UNIQUE KEY `module_config` (`module_name`, `config_key`),
|
|
KEY `module_name` (`module_name`),
|
|
KEY `config_key` (`config_key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Module-Logs-Tabelle
|
|
CREATE TABLE IF NOT EXISTS `ws_module_log` (
|
|
`id_module_log` int(11) NOT NULL AUTO_INCREMENT,
|
|
`module_name` varchar(64) NOT NULL,
|
|
`action` varchar(64) NOT NULL,
|
|
`message` text,
|
|
`level` enum('info', 'warning', 'error') DEFAULT 'info',
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_module_log`),
|
|
KEY `module_name` (`module_name`),
|
|
KEY `action` (`action`),
|
|
KEY `level` (`level`),
|
|
KEY `created_at` (`created_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Module-Dependencies-Tabelle
|
|
CREATE TABLE IF NOT EXISTS `ws_module_dependency` (
|
|
`id_module_dependency` int(11) NOT NULL AUTO_INCREMENT,
|
|
`module_name` varchar(64) NOT NULL,
|
|
`dependency_name` varchar(64) NOT NULL,
|
|
`dependency_version` varchar(32) DEFAULT NULL,
|
|
`required` tinyint(1) DEFAULT 1,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_module_dependency`),
|
|
KEY `module_name` (`module_name`),
|
|
KEY `dependency_name` (`dependency_name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Module-Override-Tabelle
|
|
CREATE TABLE IF NOT EXISTS `ws_module_override` (
|
|
`id_module_override` int(11) NOT NULL AUTO_INCREMENT,
|
|
`module_name` varchar(64) NOT NULL,
|
|
`override_type` enum('class', 'template', 'controller') NOT NULL,
|
|
`original_path` varchar(255) NOT NULL,
|
|
`override_path` varchar(255) NOT NULL,
|
|
`active` tinyint(1) DEFAULT 1,
|
|
`created_at` timestamp DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id_module_override`),
|
|
KEY `module_name` (`module_name`),
|
|
KEY `override_type` (`override_type`),
|
|
KEY `active` (`active`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Standard-Hooks einfügen
|
|
INSERT IGNORE INTO `ws_hook_module` (`hook_name`, `module_name`, `position`) VALUES
|
|
-- Display Hooks
|
|
('displayHeader', 'system', 0),
|
|
('displayTop', 'system', 0),
|
|
('displayNav', 'system', 0),
|
|
('displayFooter', 'system', 0),
|
|
('displayHome', 'system', 0),
|
|
|
|
-- Product Hooks
|
|
('displayProductAdditionalInfo', 'system', 0),
|
|
('displayProductListReviews', 'system', 0),
|
|
('displayProductButtons', 'system', 0),
|
|
|
|
-- Cart Hooks
|
|
('displayShoppingCart', 'system', 0),
|
|
('actionCartUpdateQuantityBefore', 'system', 0),
|
|
('actionCartUpdateQuantityAfter', 'system', 0),
|
|
|
|
-- Order Hooks
|
|
('displayOrderConfirmation', 'system', 0),
|
|
('actionValidateOrder', 'system', 0),
|
|
|
|
-- Customer Hooks
|
|
('displayCustomerAccount', 'system', 0),
|
|
('actionCustomerAccountAdd', 'system', 0),
|
|
|
|
-- Admin Hooks
|
|
('displayAdminOrder', 'system', 0),
|
|
('displayAdminProducts', 'system', 0),
|
|
|
|
-- Payment Hooks
|
|
('displayPayment', 'system', 0),
|
|
('actionPaymentConfirmation', 'system', 0),
|
|
|
|
-- Search Hooks
|
|
('displaySearch', 'system', 0),
|
|
('actionSearch', 'system', 0),
|
|
|
|
-- Newsletter Hooks
|
|
('displayNewsletterRegistration', 'system', 0),
|
|
('actionNewsletterRegistrationAfter', 'system', 0),
|
|
|
|
-- Security Hooks
|
|
('actionAuthentication', 'system', 0),
|
|
('actionCustomerLogoutAfter', 'system', 0);
|
|
|
|
-- System-Modul eintragen
|
|
INSERT IGNORE INTO `ws_module` (`name`, `display_name`, `description`, `version`, `author`, `tab`, `need_instance`, `bootstrap`, `active`) VALUES
|
|
('system', 'System', 'Kern-System-Modul', '1.0.0', 'Webshop System', 'administration', 0, 0, 1); |