mein-sterntours/dev/backups/phase2-offers-2026-04-17/MANIFEST.md
2026-04-17 17:19:11 +02:00

8.3 KiB

Backup: Phase-2 + Offers (Rückbau für Phase-1-Live-Deploy)

Erstellt: 2026-04-17 Zweck: Der Workspace enthielt gemischt Phase 1 + Phase 2 (Code-Umstellung inquiry_id, $table='contacts'/'inquiries') + Offers-Modul. Phase 1 muss zuerst auf Live, dann erst Phase 2 + Offers. Dieses Backup sichert alle Phase-2- und Offers-Artefakte, damit sie nach erfolgreichem Phase-1-Live-Deploy per restore.sh wieder in den Workspace eingespielt werden können.

Parallel dazu existiert ein Tarball-Backup des gesamten Workspace-Zustands vor dem Rückbau unter ../../../../../backups-safety/workspace-pre-phase1-rollback-2026-04-17.tar.gz (182 MB) und ein Git-Commit e3dc1af (lokal auf master, nicht gepusht) als doppeltes Sicherheitsnetz.


Was im Backup liegt

FILES/migrations/ (18 Migrations-Dateien)

Phase 2 (3 Dateien):

  • 2025_04_15_200001_phase2_rename_customer_to_contacts.php — RENAME TABLE customer → contacts
  • 2025_04_15_200002_phase2_rename_lead_to_inquiries.php — RENAME TABLE lead → inquiries
  • 2025_04_15_200003_phase2_rename_booking_lead_id_to_inquiry_id.php — Spalte booking.lead_idbooking.inquiry_id

Phase 3 (2 Dateien):

  • 2025_04_15_300001_phase3_create_participants_unified_table.php
  • 2025_04_15_300002_phase3_drop_old_participant_tables.php

Phase 4 (6 Dateien):

  • 2025_04_15_400001_phase4_create_communications_table.php
  • 2025_04_15_400002_phase4_create_notices_table.php
  • 2025_04_15_400003_phase4_create_attachments_table.php
  • 2025_04_15_400004_phase4_drop_old_communication_tables.php
  • 2025_04_15_400005_phase4_drop_old_notice_tables.php
  • 2025_04_15_400006_phase4_drop_old_attachment_tables.php

Offers (7 Dateien):

  • 2026_04_17_100001_create_offers_table.php
  • 2026_04_17_100002_create_offer_versions_table.php
  • 2026_04_17_100003_create_offer_items_table.php
  • 2026_04_17_100004_create_offer_templates_table.php
  • 2026_04_17_100005_create_offer_files_table.php
  • 2026_04_17_100006_create_offer_access_tokens_table.php
  • 2026_04_17_100007_add_offer_refs_to_offers_and_bookings.php

FILES/models/ (6 Offer-Models)

  • Offer.phpneues Offer-Model des Offers-Moduls (überschreibt das Legacy-Reliese-Model in app/Models/Offer.php; Legacy-Version ist in HEAD^ bzw. Commit 389d5d1)
  • OfferVersion.php
  • OfferItem.php
  • OfferTemplate.php
  • OfferFile.php
  • OfferAccessToken.php

PATCHES/ (Diffs für Phase-2/Offers-Rückbau)

Jede Datei enthält den vollständigen oder Phase-1-only-Diff gegen HEAD^ (= 389d5d1, Basis-Live-Stand):

  • Booking.php.full.diff — kompletter Vorher-Diff (inkl. Phase-2 + Offers-Änderungen, die zurückgebaut wurden)
  • Booking.php.phase1-only.diff — was nach Rückbau übrig blieb: nur HasFactory + $dates$casts datetime (Laravel-10-Upgrade)
  • Customer.php.phase1-only.diff — Phase-1-Arbeit (SoftDeletes, Merge-Fields, Relations, Global Scope); $table = 'contacts' zurück auf 'customer'
  • Lead.php.phase1-only.diff$table = 'inquiries' zurück auf 'lead' (+ Phase-1-$casts-Refactoring)
  • Contact.php.phase1-only.diff — komplett neue Datei (Contacts-Modul); $table = 'contacts' zurück auf 'customer'
  • filesystems.php.full.diff — entfernte offer-Disk (komplett zurückgerollt; Datei jetzt identisch mit HEAD^)
  • Repositories.full.diff / Repositories.phase1-only.diff — BookingPDFRepository (Laravel-10-Upgrade Storage::disk()->path()), LeadRepository, CustomerMailRepository
  • Controllers.phase1-only.diff — RequestController (Phase-1-$casts), API/BookingController, Admin/Report*, LeadController, CustomerController, ContactController (komplett neu)
  • Services-Commands.phase1-only.diff — BookingImport, SyncNewsletterKulturreisen (neu), Contacts*Duplicates (neu)
  • Views.phase1-only.diff — (leer, reine Phase-2-Views wurden zurückgerollt)

Was im Workspace VERBLEIBT (Phase 1 + Laravel 10)

Deploy-ready auf Live — alle Phase-1-Artefakte, die auf Test bereits laufen:

Neue Dateien (Phase 1)

  • database/migrations/2025_04_15_100001_phase1_add_merge_fields_to_customer_table.php
  • database/migrations/2025_04_15_100002_phase1_add_soft_delete_to_customer_table.php
  • app/Models/Contact.php (mit $table = 'customer')
  • app/Repositories/ContactRepository.php
  • app/Http/Controllers/ContactController.php
  • app/Console/Commands/ContactsFindDuplicates.php
  • app/Console/Commands/ContactsMergeDuplicates.php
  • resources/views/contact/*.blade.php (5 Dateien)

Modifizierte Dateien (Phase 1 + Laravel 10 Upgrade)

  • app/Models/Customer.php — SoftDeletes, Merge-Fields, Global Scope, Relations
  • app/Models/Booking.php — HasFactory, $dates$casts datetime
  • app/Models/Lead.php — Phase-1-$casts-Refactoring
  • Viele weitere Models mit Laravel-10-Upgrade-Änderungen
  • app/Repositories/BookingPDFRepository.phpStorage::disk()->path() statt deprecated getAdapter()->getPathPrefix()
  • routes/web.php/contacts, /contact/* Routen
  • resources/views/layouts/includes/layout-sidenav.blade.php — Contacts-Menüpunkt
  • Weitere modifizierte Dateien, u.a. diverse Views, Tests (tests/Feature/*, tests/Unit/*), Konfiguration (phpunit.xml, config/trustedproxy.php), Composer/Package-Dateien
  • app/Services/MailDirService.php (neu)
  • database/factories/BookingFactory.php, CustomerFactory.php, LeadFactory.php (neu)

Alle diese Dateien gehen mit dem Phase-1-Live-Deploy mit.


Restore-Anleitung

Automatisch (empfohlen)

bash dev/backups/phase2-offers-2026-04-17/restore.sh

Das Script:

  1. Prüft, ob Phase 2 auf Live eingespielt wurde (erfordert bewusste Bestätigung)
  2. Spielt die 18 Migrations-Dateien zurück nach database/migrations/
  3. Spielt die 6 Offer-Models zurück nach app/Models/ (inkl. Überschreiben der Legacy-Offer.php)
  4. Wendet die Phase-2/Offers-Änderungen wieder an (Booking.php inquiry_id + offer()-Relation, Customer/Lead/Contact $table, Repositories, Controllers, Services, Commands, Views, filesystems.php)
  5. Zeigt einen abschließenden git status zur Verifikation

Manuell

Falls das Script fehlschlägt oder man einzelne Teile prüfen möchte:

Migrations zurück:

cp dev/backups/phase2-offers-2026-04-17/FILES/migrations/*.php database/migrations/

Models zurück (WARNUNG: überschreibt Legacy-Offer.php):

cp dev/backups/phase2-offers-2026-04-17/FILES/models/*.php app/Models/

Code-Änderungen aus dem WIP-Sicherheits-Commit (e3dc1af) zurückholen:

git checkout e3dc1af -- app/Models/Booking.php app/Models/Customer.php app/Models/Contact.php app/Models/Lead.php
git checkout e3dc1af -- app/Repositories/BookingPDFRepository.php app/Repositories/LeadRepository.php app/Repositories/CustomerMailRepository.php
git checkout e3dc1af -- app/Http/Controllers/RequestController.php app/Http/Controllers/API/BookingController.php
git checkout e3dc1af -- app/Http/Controllers/Admin/ReportController.php app/Http/Controllers/Admin/ReportProviderController.php app/Http/Controllers/Admin/ReportLeadsController.php
git checkout e3dc1af -- app/Http/Controllers/LeadController.php app/Http/Controllers/CustomerController.php app/Http/Controllers/ContactController.php
git checkout e3dc1af -- app/Services/BookingImport.php
git checkout e3dc1af -- app/Console/Commands/SyncNewsletterKulturreisen.php app/Console/Commands/ContactsFindDuplicates.php app/Console/Commands/ContactsMergeDuplicates.php
git checkout e3dc1af -- resources/views/customer/mail/modal-show-mail-inner.blade.php resources/views/pdf/components/booking_head.blade.php resources/views/pdf/components/booking_header.blade.php
git checkout e3dc1af -- config/filesystems.php

Alternative — kompletter Restore aus dem Git-Commit:

git checkout e3dc1af -- .

(Aber dann sind auch die Phase-2-Migrationen in database/migrations/ wieder da, was richtig ist.)


Notfall-Rollback (alles rückgängig, auch Phase-1-Rückbau)

Falls der Phase-1-Rückbau komplett falsch war und man zum Ausgangszustand zurück will:

# Option A: Git
git reset --hard e3dc1af  # setzt Workspace auf den WIP-Sicherheits-Commit

# Option B: Tarball (falls Git nicht funktioniert)
cd /workspace/mein.sterntours.de
rm -rf * .[a-z]*  # Vorsicht! Löscht alles außer dem übergeordneten Dir
tar -xzf ../backups-safety/workspace-pre-phase1-rollback-2026-04-17.tar.gz