public async Task <ActionResult <ChurrascoUserGetUserDto> > Update([FromServices] IChurrascoUserRepository churrascoUserRepository,
                                                                           [FromServices] IChurrascoRepository churrascoRepository,
                                                                           [FromServices] IUnitOfWork unitOfWork,
                                                                           [FromBody] ChurrascoUserUpdateDto model)
        {
            try
            {
                var churrascoUserDto = await churrascoUserRepository.Update(model);

                if (churrascoUserDto == null)
                {
                    return(BadRequest("Relação de churrasco com usuário não encontrada."));
                }

                if (await unitOfWork.Commit())
                {
                    return(churrascoUserDto);
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"Erro: {ex.Message}"));
            }
        }
        public async Task <ActionResult> Delete([FromServices] IChurrascoUserRepository churrascoUserRepository,
                                                [FromServices] IChurrascoRepository churrascoRepository,
                                                [FromServices] IUnitOfWork unitOfWork,
                                                int idChurrasco,
                                                int idUser)
        {
            try
            {
                var churrascoUser = await churrascoUserRepository.GetEntityByChurrascoIdAndUserId(idChurrasco, idUser);

                if (churrascoUser == null)
                {
                    return(BadRequest("Relação de churrasco com usuário não encontrada."));
                }

                churrascoUserRepository.Delete(churrascoUser);

                if (await unitOfWork.Commit())
                {
                    return(Ok("Usuário deletado do churrasco."));
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"Erro: {ex.Message}"));
            }
        }
        public async Task <ActionResult <ChurrascoUser> > Post([FromServices] IChurrascoUserRepository churrascoUserRepository,
                                                               [FromServices] IChurrascoRepository churrascoRepository,
                                                               [FromServices] IUserRepository userRepository,
                                                               [FromServices] IUnitOfWork unitOfWork,
                                                               [FromBody] ChurrascoUser model)
        {
            try
            {
                var user = await userRepository.GetEntityById(model.UserId.Value);

                var churrasco = await churrascoRepository.GetEntityById(model.ChurrascoId.Value);

                if (user == null || churrasco == null)
                {
                    return(BadRequest("Usuário ou Churrasco não encontrado."));
                }

                churrascoUserRepository.Add(model);

                if (await unitOfWork.Commit())
                {
                    return(model);
                }
                else
                {
                    return(BadRequest("Erro desconhecido."));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"Erro: {ex.Message}"));
            }
        }