import type { ClsStore } from 'nestjs-cls';
import type { PrismaClient } from '@prisma/client';

// 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: workspaceId vem sempre do JWT, nunca de body/param/query.

export interface WorkspaceClsStore extends ClsStore {
  requestId: string;
  workspaceId: string;
  userId?: string; // preenchido pelo JwtAuthGuard (M3)
  prisma?: PrismaClient; // preenchido pelo WorkspaceModule após WorkspacePrismaPool entrar (M5)
}
