| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/seaside2.pacim.de/web/database/ |
Upload File : |
-- PaCIM SaaS schema SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; CREATE DATABASE IF NOT EXISTS `pacim_saas` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE `pacim_saas`; CREATE TABLE IF NOT EXISTS `users` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `email` VARCHAR(191) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `first_name` VARCHAR(100) NOT NULL, `last_name` VARCHAR(100) NOT NULL, `role` VARCHAR(50) NOT NULL DEFAULT 'admin', `status` VARCHAR(50) NOT NULL DEFAULT 'active', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `customers` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `company` VARCHAR(191) DEFAULT NULL, `first_name` VARCHAR(100) NOT NULL, `last_name` VARCHAR(100) NOT NULL, `street` VARCHAR(191) NOT NULL, `zip` VARCHAR(20) NOT NULL, `city` VARCHAR(100) NOT NULL, `phone` VARCHAR(50) NOT NULL, `email` VARCHAR(191) NOT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'active', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY `email_unique` (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `events` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR(191) NOT NULL, `ship_name` VARCHAR(191) NOT NULL, `terminal` VARCHAR(100) NOT NULL, `starts_at` DATETIME NOT NULL, `ends_at` DATETIME NOT NULL, `arrival_from` DATETIME NOT NULL, `arrival_to` DATETIME NOT NULL, `capacity_indoor` INT UNSIGNED NOT NULL DEFAULT 0, `capacity_outdoor` INT UNSIGNED NOT NULL DEFAULT 0, `capacity_valet` INT UNSIGNED NOT NULL DEFAULT 0, `status` VARCHAR(50) NOT NULL DEFAULT 'scheduled', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `products` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR(191) NOT NULL, `description` TEXT, `type` VARCHAR(100) NOT NULL, `price_net` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `vat_rate` DECIMAL(5,2) NOT NULL DEFAULT 19.00, `price_gross` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `is_active` TINYINT(1) NOT NULL DEFAULT 1, `use_as_filter` TINYINT(1) NOT NULL DEFAULT 1, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- events.cruise wird über Migration 025 ergänzt (Brücke zu aida_prebookings). CREATE TABLE IF NOT EXISTS `bookings` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `booking_no` VARCHAR(20) NOT NULL UNIQUE, `customer_id` INT UNSIGNED NOT NULL, `event_id` INT UNSIGNED NOT NULL, `travel_from` VARCHAR(191) DEFAULT NULL, `travel_to` VARCHAR(191) DEFAULT NULL, `arrival_time` DATETIME DEFAULT NULL, `license_plate` VARCHAR(50) DEFAULT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'confirmed', `payment_status` VARCHAR(50) NOT NULL DEFAULT 'open', `checkin_status` VARCHAR(50) NOT NULL DEFAULT 'pending', `total_net` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `total_vat` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `total_gross` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `notes` TEXT, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE, FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `booking_products` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `booking_id` INT UNSIGNED NOT NULL, `product_id` INT UNSIGNED NOT NULL, `quantity` INT UNSIGNED NOT NULL DEFAULT 1, `price_net` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `vat_rate` DECIMAL(5,2) NOT NULL DEFAULT 19.00, `price_gross` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `total_gross` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`booking_id`) REFERENCES `bookings` (`id`) ON DELETE CASCADE, FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `invoices` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `invoice_no` VARCHAR(50) NOT NULL UNIQUE, `booking_id` INT UNSIGNED NOT NULL, `customer_id` INT UNSIGNED NOT NULL, `invoice_date` DATE NOT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'draft', `total_net` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `total_vat` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `total_gross` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `pdf_path` VARCHAR(255) DEFAULT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`booking_id`) REFERENCES `bookings` (`id`) ON DELETE CASCADE, FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `payments` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `booking_id` INT UNSIGNED NOT NULL, `invoice_id` INT UNSIGNED DEFAULT NULL, `amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `payment_method` VARCHAR(100) NOT NULL, `paid_at` DATETIME NOT NULL, `note` TEXT, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`booking_id`) REFERENCES `bookings` (`id`) ON DELETE CASCADE, FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `checkins` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `booking_id` INT UNSIGNED NOT NULL, `checked_in_at` DATETIME DEFAULT NULL, `checked_out_at` DATETIME DEFAULT NULL, `checked_in_by` VARCHAR(100) DEFAULT NULL, `checked_out_by` VARCHAR(100) DEFAULT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'pending', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`booking_id`) REFERENCES `bookings` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `pdf_documents` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `document_type` VARCHAR(100) NOT NULL, `booking_id` INT UNSIGNED DEFAULT NULL, `customer_id` INT UNSIGNED DEFAULT NULL, `file_path` VARCHAR(255) NOT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (`booking_id`) REFERENCES `bookings` (`id`) ON DELETE SET NULL, FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `history_log` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `entity_type` VARCHAR(100) NOT NULL, `entity_id` INT UNSIGNED NOT NULL, `action` VARCHAR(100) NOT NULL, `message` TEXT, `created_by` VARCHAR(100) DEFAULT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `settings` ( `id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, `config_key` VARCHAR(100) NOT NULL UNIQUE, `config_value` TEXT, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; SET FOREIGN_KEY_CHECKS = 1;