presseportale/database/migrations
Kevin Adametz d548f4b235 Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN-
Tarif-Datenmodell (Decision-Update):
- plans: Starter/Business/Pro/Agency mit Monats-/Jahrespreis (Jahres =
  10 x Monat), PM-Kontingent, Tageslimit, Stripe-IDs; idempotenter Seeder
- single_purchases: Einzel-PM, Extra-PM, Boost, PDF-Nachweis mit
  Status-Lifecycle und Stripe-Checkout-Referenzen
- laravel/cashier ^16.5 installiert (freigegeben); User ist Billable,
  Cashier-Migrationen published + ausgefuehrt; lokale invoices()-Relation
  ueberschreibt bewusst die Cashier-Methode

Hybride Rechnungskreise (Entscheidung 12.06.2026):
- invoice_number_sequences + InvoiceNumberGenerator: atomare fortlaufende
  Nummern pro Kreis (STR- fuer den neuen Stripe-Shop, MAN- fuer den
  manuellen Legacy-Kreis); Alt-Archiv legacy_invoices bleibt unveraendert
- ManualInvoiceService + billing:generate-manual-invoices (Scheduler
  taeglich 04:30): prueft aktive/grandfathered user_payment_options ohne
  Stripe-Subscription auf erreichtes Periodenende, friert die
  Rechnungsadresse als Snapshot ein, stellt die MAN-Rechnung aus
  (Zahlungsziel billing.manual_due_days) und schaltet die Periode weiter;
  Konditions-Overrides via legacy_conditions, sonst Netto-Preis +
  billing.vat_rate; nicht abrechenbare Faelle werden geloggt und
  beim naechsten Lauf erneut geprueft

Submit-Gate:
- User::hasActiveBooking() prueft jetzt echt (hinter
  billing.enforce_booking): Cashier-Abo, bezahlter Einzel-/Extra-PM-Kauf
  oder laufende Legacy-Vereinbarung (MAN-Kreis)

Suite: 468 passed, 4 skipped (17 neue Billing-Tests). Pint clean.
Offen fuer 9E: Stripe-Checkout/Webhooks, STR-Spiegelung, Slot-Logik auf
Plan-Kontingent, Migration der aktiven Legacy-Zahlungen in
user_payment_options.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 10:15:46 +00:00
..
0001_01_01_000000_create_users_table.php first commit 2025-10-20 17:53:02 +02:00
0001_01_01_000001_create_cache_table.php first commit 2025-10-20 17:53:02 +02:00
0001_01_01_000002_create_jobs_table.php first commit 2025-10-20 17:53:02 +02:00
2025_07_21_124334_add_two_factor_columns_to_users_table.php first commit 2025-10-20 17:53:02 +02:00
2025_07_21_124345_create_personal_access_tokens_table.php first commit 2025-10-20 17:53:02 +02:00
2026_04_23_163135_expand_users_table_for_migration_2026.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_163251_create_permission_tables.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_163305_create_magic_links_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_163305_create_profiles_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_164018_create_companies_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_164018_create_company_user_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_164018_create_contacts_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_170557_create_categories_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_170557_create_category_translations_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_171000_create_press_releases_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_171001_create_press_release_images_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_171002_create_press_release_contact_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_172142_create_newsletter_subscriptions_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_174502_create_billing_addresses_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_174502_create_invoice_billing_addresses_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_174844_create_payment_options_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_174846_create_payment_option_translations_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175304_create_user_payment_options_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175305_create_user_payment_option_company_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175306_create_user_payments_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175631_create_invoices_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175632_create_legacy_invoices_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_23_175633_create_legacy_import_map_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_24_120000_create_user_filter_presets_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_24_183000_create_contact_user_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_27_115212_expand_phone_fax_columns.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_28_142555_create_admin_presets_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_29_132601_create_api_usage_logs_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_29_132809_add_admin_performance_indexes.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_04_29_140616_add_admin_search_fulltext_indexes.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_05_04_112430_create_footer_codes_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_05_04_115118_create_press_release_status_logs_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_05_04_122603_add_legacy_pdf_payload_to_legacy_invoices_table.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
2026_05_20_143424_add_boilerplate_to_companies.php create PM v0.5 2026-05-20 19:14:39 +02:00
2026_05_20_143424_add_phase7_fields_to_press_releases.php create PM v0.5 2026-05-20 19:14:39 +02:00
2026_05_20_143424_create_press_release_attachments_table.php create PM v0.5 2026-05-20 19:14:39 +02:00
2026_05_21_180700_add_customer_press_kit_index_performance_indexes.php 22-05-2026 Optimierung der User und Admin Panels 2026-05-22 11:18:59 +02:00
2026_05_29_130110_add_placeholder_variant_to_press_releases.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_05_29_130849_add_license_fields_to_press_release_images.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_05_29_134459_add_press_release_quota_to_users.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_06_10_154249_add_rights_detail_fields_to_press_release_images_table.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_06_11_131506_add_classification_to_press_releases.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_06_11_131506_create_ki_audits_table.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_06_11_150538_add_content_score_to_press_releases.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
2026_06_12_100632_create_customer_columns.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100633_create_subscriptions_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100634_create_subscription_items_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100635_add_meter_id_to_subscription_items_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100636_add_meter_event_name_to_subscription_items_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100724_create_invoice_number_sequences_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100724_create_plans_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
2026_06_12_100724_create_single_purchases_table.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00