fix(clientes): crear tenant como despacho desde admin global
Antes, createTenant() solo seteaba nombre, rfc, plan y databaseName. Ahora registra tenants completos como despachos: - dbMode: 'MANAGED' - verticalProfile: CONTABLE | JURIDICO | ARQUITECTURA - trialEndsAt: +30 días para plan trial - codigoPostal: opcional (se llena automáticamente de la CSF al subir FIEL) Frontend: - Selector de Tipo de Despacho en /clientes - C.P. omitido del formulario (viene de CSF -> sincronizarDatosFiscales) - Tipos Tenant y CreateTenantData actualizados Backend: - getAllTenants y getTenantById retornan verticalProfile y codigoPostal Refs: docs/sessions/2026-05-04-fix-clientes-crea-despacho.md
This commit is contained in:
@@ -15,6 +15,8 @@ export async function getAllTenants() {
|
||||
plan: true,
|
||||
databaseName: true,
|
||||
createdAt: true,
|
||||
verticalProfile: true,
|
||||
codigoPostal: true,
|
||||
_count: {
|
||||
select: { memberships: { where: { active: true } } as any }
|
||||
},
|
||||
@@ -43,6 +45,8 @@ export async function getTenantById(id: string) {
|
||||
plan: true,
|
||||
databaseName: true,
|
||||
createdAt: true,
|
||||
verticalProfile: true,
|
||||
codigoPostal: true,
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -57,6 +61,8 @@ export async function createTenant(data: {
|
||||
/** Solo plan custom: primera fecha de pago (deadline para que el cliente
|
||||
* complete su primer cobro). Se persiste como Subscription.currentPeriodEnd. */
|
||||
firstPaymentDueAt?: string | null;
|
||||
verticalProfile?: 'CONTABLE' | 'JURIDICO' | 'ARQUITECTURA';
|
||||
codigoPostal?: string;
|
||||
}) {
|
||||
const plan = data.plan || 'trial';
|
||||
|
||||
@@ -70,12 +76,18 @@ export async function createTenant(data: {
|
||||
}).catch(err => console.error('[METABASE] Register failed:', err));
|
||||
|
||||
// 2. Create tenant record
|
||||
const isTrial = plan === 'trial';
|
||||
|
||||
const tenant = await prisma.tenant.create({
|
||||
data: {
|
||||
nombre: data.nombre,
|
||||
rfc: data.rfc.toUpperCase(),
|
||||
plan,
|
||||
databaseName,
|
||||
dbMode: 'MANAGED',
|
||||
verticalProfile: data.verticalProfile || 'CONTABLE',
|
||||
codigoPostal: data.codigoPostal || undefined,
|
||||
trialEndsAt: isTrial ? new Date(Date.now() + 30 * 24 * 60 * 60 * 1000) : undefined,
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user