import {Resolver, Args, Query, Mutation, Parent, ResolveField} from '@nestjs/graphql';
import { UsersService } from './users.service';
import { ParseUUIDPipe } from '@nestjs/common';
import { UserSignupDTO } from './dto/user-signup.dto';


@Resolver('User')
export class UsersResolver {
  constructor(
    private readonly usersService: UsersService,
  ) {}

  @Query('user')
  async getUser(@Args('userId', ParseUUIDPipe) userId: string) {
    return this.usersService.findById(userId);
  }

  @ResolveField()
  async roles(@Parent() user) {
    return user.roles || [];
  }

  @Mutation('signup')
  async signup(@Args('user') user: UserSignupDTO) {
    return this.usersService.signup(user);
  }
}