import { createParamDecorator, ExecutionContext } from '@nestjs/common';
import { RoleCode } from '@prisma/client';

export interface AuthenticatedUser {
  userId: string;
  email: string;
  roles: { code: RoleCode; tenantId: string | null; scopeComplexId: string | null }[];
  tenantId: string | null;       // active tenant from header / token
  isSuperAdmin: boolean;
}

export const CurrentUser = createParamDecorator(
  (_data: unknown, ctx: ExecutionContext): AuthenticatedUser => {
    const request = ctx.switchToHttp().getRequest();
    return request.user;
  },
);
