-`document_series.document_type` para legacy de facturas emitidas será `issued_invoice`
## Migración conservadora de issued invoices
```sql
INSERT INTO document_series (
id,
company_id,
branch_id,
document_type,
code,
name,
description,
prefix,
suffix,
next_number,
padding,
valid_from,
valid_to,
is_default,
is_active,
created_at,
updated_at
)
SELECT
cis.id,
cis.company_id,
NULL,
'issued_invoice',
cis.code,
cis.code,
NULL,
CONCAT(cis.code, '-'),
NULL,
cis.next_number,
cis.padding_length,
NULL,
NULL,
cis.is_default,
cis.is_active,
cis.created_at,
cis.updated_at
FROM customer_invoice_series cis
WHERE NOT EXISTS (
SELECT 1
FROM document_series ds
WHERE ds.company_id = cis.company_id
AND ds.document_type = 'issued_invoice'
AND ds.code = cis.code
);
```
## Series de proformas
Crear una serie por defecto por empresa con:
-`document_type = 'proforma'`
-`code = 'PF'`
-`prefix = 'PF-'`
-`next_number = 1`
-`padding = 6`
En Fase 2B la fuente preferida para este seed pasa a ser `companies`, no `customer_invoice_series`, para cubrir empresas activas sin series legacy previas.
## Cambio de assigner
- antes: `InvoiceSeriesNumberAssigner`
- después: `DocumentSeriesNumberAssigner` o `document-series:general.assignNextNumber`
## Estado actual
-`document_series` es la tabla canonica
-`GET /document-series` es la API canonica
-`/catalogs/invoice-series` ha sido retirado del runtime
-`CustomerInvoiceSeriesModel` y su repositorio legacy ya no participan en runtime