From 7cd1a7388f8ae8b590e07e92e62174d86e4ebd8b Mon Sep 17 00:00:00 2001 From: Jonas Hagberg Date: Mon, 29 Jun 2026 22:59:58 +0200 Subject: [PATCH] fix(customers): add columns the system-migration importer needs (address_line2, default_payment_terms, vat_number_validated) (#780) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(customers): add address_line2 + default_payment_terms columns The customers table lacked address_line2 and default_payment_terms, yet the suppliers table has both and three code paths write/read them on customers: the arcim-migration importer, the built-in customer CSV import, and the customer CSV export. Inserts failed with PostgREST "Could not find the 'address_line2' column of 'customers' in the schema cache", so customer imports landed 0 rows while suppliers imported fine. Add the two columns to match suppliers (text, integer default 30). Signed-off-by: Jonas Hagberg * fix(customers): add missing vat_number_validated boolean column The customers table was missing the boolean vat_number_validated flag that types/index.ts and ~40 code sites depend on (getVatRules/getAvailableVatRates, the customers-list validated badge, the v1 customers API select), yet no migration ever created it — only the vat_number_validated_at timestamp exists. It went unnoticed because normal customer creation writes the flag only when a VIES check runs, and reads degrade to undefined when the column is absent. The arcim-migration importer writes it unconditionally (false), so customer and sales-invoice-stub inserts failed with PostgREST "Could not find the 'vat_number_validated' column of 'customers' in the schema cache". Same class of gap as the address_line2/default_payment_terms columns added in the previous commit on this branch. Signed-off-by: Jonas Hagberg * fix(customers): retimestamp migrations to clear version collision 20260628120000 collided with 20260628120000_ef_no_owner_employee.sql (merged to main via #797) and with #757. Renamed to unique timestamps ordered after main's latest (20260629160000). SQL unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) --------- Signed-off-by: Jonas Hagberg Co-authored-by: Jakob Wennberg Co-authored-by: Claude Opus 4.8 (1M context) --- ...omers_add_address_line2_default_payment_terms.sql | 12 ++++++++++++ ...0629170100_customers_add_vat_number_validated.sql | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 supabase/migrations/20260629170000_customers_add_address_line2_default_payment_terms.sql create mode 100644 supabase/migrations/20260629170100_customers_add_vat_number_validated.sql diff --git a/supabase/migrations/20260629170000_customers_add_address_line2_default_payment_terms.sql b/supabase/migrations/20260629170000_customers_add_address_line2_default_payment_terms.sql new file mode 100644 index 00000000..8a8a008e --- /dev/null +++ b/supabase/migrations/20260629170000_customers_add_address_line2_default_payment_terms.sql @@ -0,0 +1,12 @@ +-- The `customers` table was missing `address_line2` and `default_payment_terms` +-- even though the sibling `suppliers` table has both, and several code paths +-- insert/select them on customers: +-- * extensions/general/arcim-migration (provider migration importer) +-- * app/api/import/customers/execute (built-in customer CSV import) +-- * app/api/export/customers (customer CSV export) +-- Inserts therefore failed with PostgREST "Could not find the 'address_line2' +-- column of 'customers' in the schema cache", so customer migration/import +-- silently imported 0 rows. Add the two columns to match `suppliers`. +alter table public.customers + add column if not exists address_line2 text, + add column if not exists default_payment_terms integer default 30; diff --git a/supabase/migrations/20260629170100_customers_add_vat_number_validated.sql b/supabase/migrations/20260629170100_customers_add_vat_number_validated.sql new file mode 100644 index 00000000..43fe39b9 --- /dev/null +++ b/supabase/migrations/20260629170100_customers_add_vat_number_validated.sql @@ -0,0 +1,12 @@ +-- The `customers` table was missing the boolean `vat_number_validated` flag that +-- `types/index.ts` and ~40 code sites depend on: getVatRules/getAvailableVatRates, +-- the customers-list "validated" badge, and the v1 customers API column select. +-- It went unnoticed because normal customer creation only writes the flag when a +-- VIES check runs, and reads degrade to undefined when the column is absent. The +-- arcim-migration importer writes it unconditionally (vat_number_validated: false), +-- so customer + sales-invoice-stub inserts failed with PostgREST "Could not find +-- the 'vat_number_validated' column of 'customers' in the schema cache". +-- This flag is distinct from the existing `vat_number_validated_at` timestamp, +-- which records when the last successful VIES check happened. +alter table public.customers + add column if not exists vat_number_validated boolean not null default false;