Files
MokoSuiteResto/source/packages/plg_system_mokosuiteresto/sql/install.mysql.sql
T
2026-06-27 15:27:01 -05:00

150 lines
6.2 KiB
SQL

CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_menus` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`description` TEXT,
`menu_type` ENUM('breakfast','lunch','dinner','brunch','drinks','dessert','kids','catering','special') NOT NULL DEFAULT 'dinner',
`available_start` TIME DEFAULT NULL,
`available_end` TIME DEFAULT NULL,
`photo` VARCHAR(500) NOT NULL DEFAULT '',
`published` TINYINT NOT NULL DEFAULT 1,
`ordering` INT NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_type` (`menu_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_menu_items` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`menu_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(255) NOT NULL,
`description` TEXT,
`category` VARCHAR(100) NOT NULL DEFAULT '',
`price` DECIMAL(10,2) NOT NULL,
`calories` SMALLINT UNSIGNED DEFAULT NULL,
`allergens` JSON DEFAULT NULL,
`dietary_tags` JSON DEFAULT NULL,
`available` TINYINT NOT NULL DEFAULT 1,
`featured` TINYINT NOT NULL DEFAULT 0,
`photo` VARCHAR(500) NOT NULL DEFAULT '',
`published` TINYINT NOT NULL DEFAULT 1,
`ordering` INT NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_menu` (`menu_id`),
KEY `idx_category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_tables` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`table_number` VARCHAR(20) NOT NULL,
`section` VARCHAR(50) NOT NULL DEFAULT '',
`capacity` TINYINT UNSIGNED NOT NULL DEFAULT 4,
`table_type` ENUM('indoor','outdoor','patio','bar','private','booth') NOT NULL DEFAULT 'indoor',
`status` ENUM('available','occupied','reserved','cleaning','closed') NOT NULL DEFAULT 'available',
`published` TINYINT NOT NULL DEFAULT 1,
`ordering` INT NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_number` (`table_number`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_reservations` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`reservation_ref` VARCHAR(20) NOT NULL,
`customer_contact_id` INT DEFAULT NULL,
`customer_name` VARCHAR(255) NOT NULL,
`customer_phone` VARCHAR(50) NOT NULL DEFAULT '',
`customer_email` VARCHAR(255) NOT NULL DEFAULT '',
`table_id` INT UNSIGNED DEFAULT NULL,
`party_size` TINYINT UNSIGNED NOT NULL DEFAULT 2,
`reservation_date` DATE NOT NULL,
`reservation_time` TIME NOT NULL,
`duration_minutes` SMALLINT UNSIGNED NOT NULL DEFAULT 90,
`status` ENUM('pending','confirmed','seated','completed','cancelled','no_show') NOT NULL DEFAULT 'pending',
`special_requests` TEXT,
`created` DATETIME NOT NULL,
`created_by` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_ref` (`reservation_ref`),
KEY `idx_customer` (`customer_contact_id`),
KEY `idx_table` (`table_id`),
KEY `idx_date` (`reservation_date`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_orders` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_ref` VARCHAR(20) NOT NULL,
`table_id` INT UNSIGNED DEFAULT NULL,
`customer_contact_id` INT DEFAULT NULL,
`customer_name` VARCHAR(255) NOT NULL DEFAULT '',
`order_type` ENUM('dine_in','takeout','delivery','catering') NOT NULL DEFAULT 'dine_in',
`status` ENUM('pending','confirmed','preparing','ready','served','completed','cancelled') NOT NULL DEFAULT 'pending',
`subtotal` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`tax` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`tip` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`discount` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`total` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`payment_method` ENUM('cash','card','online','gift_card','split') NOT NULL DEFAULT 'card',
`payment_status` ENUM('pending','paid','refunded','voided') NOT NULL DEFAULT 'pending',
`notes` TEXT,
`ordered_at` DATETIME NOT NULL,
`completed_at` DATETIME DEFAULT NULL,
`created` DATETIME NOT NULL,
`created_by` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_ref` (`order_ref`),
KEY `idx_table` (`table_id`),
KEY `idx_status` (`status`),
KEY `idx_type` (`order_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_order_items` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_id` INT UNSIGNED NOT NULL,
`menu_item_id` INT UNSIGNED NOT NULL,
`quantity` TINYINT UNSIGNED NOT NULL DEFAULT 1,
`unit_price` DECIMAL(10,2) NOT NULL,
`modifiers_json` JSON DEFAULT NULL,
`modifiers_price` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`line_total` DECIMAL(10,2) NOT NULL,
`status` ENUM('pending','preparing','ready','served','cancelled') NOT NULL DEFAULT 'pending',
`special_instructions` TEXT,
PRIMARY KEY (`id`),
KEY `idx_order` (`order_id`),
KEY `idx_item` (`menu_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_inventory` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`category` VARCHAR(100) NOT NULL DEFAULT '',
`unit` ENUM('ea','oz','lb','kg','gal','ltr','case','box','bag','other') NOT NULL DEFAULT 'ea',
`current_stock` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`minimum_stock` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
`cost_per_unit` DECIMAL(10,4) NOT NULL DEFAULT 0.0000,
`supplier` VARCHAR(255) NOT NULL DEFAULT '',
`expiry_date` DATE DEFAULT NULL,
`notes` TEXT,
`published` TINYINT NOT NULL DEFAULT 1,
`created` DATETIME NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `#__mokosuiteresto_inventory_transactions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`inventory_id` INT UNSIGNED NOT NULL,
`transaction_type` ENUM('received','used','wasted','adjusted','returned') NOT NULL,
`quantity` DECIMAL(10,2) NOT NULL,
`cost` DECIMAL(10,2) DEFAULT NULL,
`reference` VARCHAR(255) NOT NULL DEFAULT '',
`notes` TEXT,
`created` DATETIME NOT NULL,
`created_by` INT NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `idx_inventory` (`inventory_id`),
KEY `idx_type` (`transaction_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;