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

export const Workspace = createParamDecorator(
  (data: string | undefined, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    // Try request.workspace first (set by middleware), then fall back to header
    const wsId = request.workspace?.id || request.headers['x-workspace-id'];
    if (data === 'id') return wsId;
    return request.workspace || (wsId ? { id: wsId } : undefined);
  },
);