Files
erp_naurua/db

Database Migrations

Reihenfolge

  1. db/migrations/0001_phase1_core.sql
  2. db/migrations/0002_phase1_seed_methods.sql
  3. db/migrations/0003_phase1_inventory_forecast.sql
  4. db/migrations/0004_phase1_direct_sales.sql
  5. db/migrations/0005_phase1_auto_switch_fix.sql

Beispielausfuehrung

psql "$DATABASE_URL" -f db/migrations/0001_phase1_core.sql
psql "$DATABASE_URL" -f db/migrations/0002_phase1_seed_methods.sql
psql "$DATABASE_URL" -f db/migrations/0003_phase1_inventory_forecast.sql
psql "$DATABASE_URL" -f db/migrations/0004_phase1_direct_sales.sql
psql "$DATABASE_URL" -f db/migrations/0005_phase1_auto_switch_fix.sql

Enthaltene Kernlogik in 0001

  1. Phase-1 Tabellen, Indizes und Constraints
  2. Bestands-View v_stock_lot_balance
  3. Trigger fuer:
    1. Negativbestand-Schutz
    2. Auto-Anlage von current + open bei neuem Produkt
    3. Auto-Status fuer Bestellpositionen (allocated/partially_cancelled/cancelled)
    4. Auto-Chargenwechsel bei leerer current-Charge
    5. Outbox-Events fuer Outbound-Webhook

Hinweis

ENV-Werte fuer Outbound-Zustellung (n8n URL/Secret) werden spaeter von der Applikation/Worker genutzt. Die DB-Migration legt dafuer die Outbox-Struktur bereits an.

Abverkaufdatum und Warnung

Die Migration 0003 fuehrt die interne Prognosefunktion ein:

SELECT fn_refresh_sellout_forecast(60, 60);

UI-Read-Modell:

SELECT * FROM v_stock_lot_ui_alerts ORDER BY product_name, status DESC, lot_number;

Direktverkauf (Migration 0004)

0004 erweitert Bestellungen um order_source (wix | direct) und erlaubt Direktverkaeufe ohne Kontaktzuordnung (party_id = NULL). Zusaetzlich:

  1. Guardrail: Direktbestellungen muessen external_ref mit DIR--Praefix haben.
  2. Generator-Funktion: fn_next_direct_sales_order_ref(...).
  3. Trigger: automatische Vergabe einer DIR-... Nummer, falls leer.
  4. Zahlungsarten fuer Direktverkauf: cash, paypal (zus. zu bestehenden Methoden).