diff --git a/apps/api/src/services/auth.service.ts b/apps/api/src/services/auth.service.ts index 205d9db..83cd1f9 100644 --- a/apps/api/src/services/auth.service.ts +++ b/apps/api/src/services/auth.service.ts @@ -1,7 +1,6 @@ -import { prisma } from '../config/database.js'; +import { prisma, tenantDb } from '../config/database.js'; import { hashPassword, verifyPassword } from '../utils/password.js'; import { generateAccessToken, generateRefreshToken, verifyToken } from '../utils/token.js'; -import { createTenantSchema } from '../utils/schema-manager.js'; import { AppError } from '../middlewares/error.middleware.js'; import { PLANS } from '@horux/shared'; import type { LoginRequest, RegisterRequest, LoginResponse } from '@horux/shared'; @@ -23,7 +22,8 @@ export async function register(data: RegisterRequest): Promise { throw new AppError(400, 'El RFC ya está registrado'); } - const databaseName = `horux_${data.empresa.rfc.toLowerCase().replace(/[^a-z0-9]/g, '')}`; + // Provision a dedicated database for this tenant + const databaseName = await tenantDb.provisionDatabase(data.empresa.rfc); const tenant = await prisma.tenant.create({ data: { @@ -36,8 +36,6 @@ export async function register(data: RegisterRequest): Promise { }, }); - await createTenantSchema(databaseName); - const passwordHash = await hashPassword(data.usuario.password); const user = await prisma.user.create({ data: {