403Webshell
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/migrations/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/seaside2.pacim.de/web/database/migrations/027_aida_bookings_importer.sql
-- 027: AIDA-Buchungs-Importer.
--
-- Erweitert bookings um:
--   - source           : Quellsystem ("AIDA", "Parken-am-Schiff.de", …) — separat von customers.source,
--                        damit Buchungen unabhängig vom Kunden-Datensatz nach Quelle gefiltert werden können.
--   - external_uid     : SHA1 über fachliche Felder, stabil bei AIDA-Updates → primäre Wiedererkennung.
--   - content_hash     : SHA1 über veränderliche Felder → erkennt, ob Re-Import die Daten ändert.
--   - import_run_id    : Referenz auf den Import-Lauf (audit/debug, optional FK).
--
-- UNIQUE (source, external_uid) garantiert, dass derselbe AIDA-Datensatz nicht zweimal importiert wird.
-- NULL-Werte (Bestandsbuchungen ohne external_uid) sind erlaubt, weil MySQL bei UNIQUE-Indizes NULL ≠ NULL behandelt.
--
-- import_runs: ein Datensatz pro Cruise+Datei-Lauf, mit Summary als JSON.

ALTER TABLE `bookings`
    ADD COLUMN `source`        VARCHAR(50) DEFAULT NULL AFTER `status`,
    ADD COLUMN `external_uid`  VARCHAR(64) DEFAULT NULL AFTER `source`,
    ADD COLUMN `content_hash`  VARCHAR(64) DEFAULT NULL AFTER `external_uid`,
    ADD COLUMN `import_run_id` INT UNSIGNED DEFAULT NULL AFTER `content_hash`,
    ADD UNIQUE KEY `ux_bookings_source_external_uid` (`source`, `external_uid`),
    ADD KEY `idx_bookings_import_run` (`import_run_id`),
    ADD KEY `idx_bookings_source`     (`source`);

CREATE TABLE IF NOT EXISTS `import_runs` (
    `id`           INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `source`       VARCHAR(50) NOT NULL,
    `cruise`       VARCHAR(32) DEFAULT NULL,
    `event_id`     INT UNSIGNED DEFAULT NULL,
    `ship_name`    VARCHAR(191) DEFAULT NULL,
    `travel_from`  VARCHAR(10) DEFAULT NULL,
    `travel_to`    VARCHAR(10) DEFAULT NULL,
    `filename`     VARCHAR(255) DEFAULT NULL,
    `imported_at`  DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `status`       VARCHAR(50) NOT NULL DEFAULT 'running',
    `summary`      JSON DEFAULT NULL,
    KEY `idx_source_event` (`source`, `event_id`),
    KEY `idx_imported_at`  (`imported_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Youez - 2016 - github.com/yon3zu
LinuXploit