Add ciclo de vida de sesión y helpers de usuario actual

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-05-30 19:39:31 +02:00
parent 7b3b8457c1
commit a6b77b9731
3 changed files with 142 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import { eq } from 'drizzle-orm';
import { db } from './index';
import { users, tenants } from './schema';
import { sessionExpiry } from '@/lib/auth/tokens';
export async function getUserByEmail(email: string) {
const [row] = await db.select().from(users).where(eq(users.email, email)).limit(1);
return row ?? null;
}
export async function getUserById(id: string) {
const [row] = await db.select().from(users).where(eq(users.id, id)).limit(1);
return row ?? null;
}
export async function createTenantWithOwner(input: {
nombreEmpresa: string;
slug: string;
provincia: string | null;
email: string;
passwordHash: string;
nombre: string | null;
}) {
const [tenant] = await db
.insert(tenants)
.values({
slug: input.slug,
nombreEmpresa: input.nombreEmpresa,
provincia: input.provincia,
subscriptionStatus: 'trial',
trialEndsAt: sessionExpiry(new Date()),
})
.returning();
const [user] = await db
.insert(users)
.values({
email: input.email,
passwordHash: input.passwordHash,
nombre: input.nombre,
role: 'reformista',
tenantId: tenant.id,
})
.returning();
return { tenant, user };
}