import type { ClsStore } from 'nestjs-cls';
import type { PrismaClient } from '@prisma/client';
import type { JwtRole } from '../auth/jwt.types';

// Forma do CLS store por request — fonte da verdade para qualquer caller.
// CODING-RULES PGD-DB-009: nunca importe PrismaClient diretamente; use cls.get('prisma').
// CODING-RULES PGD-AUTHZ-002: idEmpresa vem sempre do JWT, nunca de body/param/query.
// ADR 0006 revogado: workspaceId: string → idEmpresa: number

export interface WorkspaceClsStore extends ClsStore {
  requestId: string;
  idEmpresa: number; // era workspaceId: string — agora Int da empresa no ERP
  userId?: string; // cod_vendedor como string; preenchido pelo JwtAuthGuard
  role?: JwtRole; // preenchido pelo JwtAuthGuard após validar o token
  prisma?: PrismaClient; // preenchido pelo JwtAuthGuard via WorkspacePrismaPool
}
