using Application.Features.SalesTeamManager.Commands; using Application.Features.SalesTeamManager.Queries; using ASPNET.BackEnd.Common.Base; using ASPNET.BackEnd.Common.Models; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace ASPNET.BackEnd.Controllers; [Route("api/[controller]")] public class SalesTeamController : BaseApiController { public SalesTeamController(ISender sender) : base(sender) { } [Authorize] [HttpPost("CreateSalesTeam")] public async Task>> CreateSalesTeamAsync(CreateSalesTeamRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(CreateSalesTeamAsync)}", Content = response }); } [Authorize] [HttpPost("UpdateSalesTeam")] public async Task>> UpdateSalesTeamAsync(UpdateSalesTeamRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(UpdateSalesTeamAsync)}", Content = response }); } [Authorize] [HttpPost("DeleteSalesTeam")] public async Task>> DeleteSalesTeamAsync(DeleteSalesTeamRequest request, CancellationToken cancellationToken) { var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(DeleteSalesTeamAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesTeamList")] public async Task>> GetSalesTeamListAsync( CancellationToken cancellationToken, [FromQuery] bool isDeleted = false ) { var request = new GetSalesTeamListRequest { IsDeleted = isDeleted }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesTeamListAsync)}", Content = response }); } [Authorize] [HttpGet("GetSalesTeamSingle")] public async Task>> GetSalesTeamSingleAsync( CancellationToken cancellationToken, [FromQuery] string id ) { var request = new GetSalesTeamSingleRequest { Id = id }; var response = await _sender.Send(request, cancellationToken); return Ok(new ApiSuccessResult { Code = StatusCodes.Status200OK, Message = $"Success executing {nameof(GetSalesTeamSingleAsync)}", Content = response }); } }