using Microsoft.AspNetCore.Mvc; using PlanTempus.Core.CommandQueries; namespace PlanTempus.Components.Users.Create { [ApiController] [Route("api/users")] public class CreateUserController(CreateUserHandler handler, CreateUserValidator validator) : ControllerBase { [HttpPost] public async Task> Create([FromBody] CreateUserCommand command) { try { var validationResult = await validator.ValidateAsync(command); if (!validationResult.IsValid) { return BadRequest(validationResult.Errors); } var result = await handler.Handle(command); return Accepted($"/api/requests/{result.RequestId}", result); } catch (Exception ex) { return BadRequest(ex.Message); } } } }