fix(customers): add columns the system-migration importer needs (address_line2, default_payment_terms, vat_number_validated) (#780)

* 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 <jonas@lindan.se>

* 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 <jonas@lindan.se>

* 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) <noreply@anthropic.com>

---------

Signed-off-by: Jonas Hagberg <jonas@lindan.se>
Co-authored-by: Jakob Wennberg <jakob.wennberg@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonas Hagberg
2026-06-29 22:59:58 +02:00
committed by GitHub
parent 837f354d81
commit 7cd1a7388f
2 changed files with 24 additions and 0 deletions
@@ -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;
@@ -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;