import { Request, Response, NextFunction } from 'express' import { prisma } from '../lib/prisma' import { sendUnauthorized } from './authHelpers' /** * Loads the company record and validates it exists. * Must be applied after `requireCompanyAuth`. * * Guarantees on success: * req.company — full Company record * req.companyId — string id (already set by requireCompanyAuth) */ export async function requireTenant(req: Request, res: Response, next: NextFunction) { if (!req.companyId) { return sendUnauthorized(res, 'unauthenticated', 'Tenant context missing — requireCompanyAuth must run first') } const company = await prisma.company.findUnique({ where: { id: req.companyId } }) if (!company) { return sendUnauthorized(res, 'company_not_found', 'Company not found') } req.company = company next() }