Comunicação - Yago-Captain/GeneralNotes GitHub Wiki

MyGeneralNotes.Communication

O diretório de Comunicação, localizado em MyGeneralNotes.Communication, é uma biblioteca de classes essencial que facilita a comunicação entre diferentes componentes ou serviços da nossa aplicação. Este diretório desempenha um papel fundamental na troca de informações entre os diversos módulos do sistema, garantindo uma integração eficiente e coesa.

Enums

Neste diretório, encontramos duas enumerações importantes:

  • DayOfWeek: Esta enumeração define os dias da semana, fornecendo uma representação consistente dos dias para várias funcionalidades da nossa aplicação.
namespace MyGeneralNotes.Communication.Enum
{
    public enum DayOfWeek
    {
        Sunday = 1,
        Monday = 2,
        Tuesday = 3,
        Wednesday = 4,
        Thursday = 5,
        Friday = 6,
        Saturday = 7
    }
}
  • ExerciseLocation: Esta enumeração especifica os locais onde um exercício pode ser realizado, oferecendo uma maneira padronizada de identificar o ambiente de treino.
namespace MyGeneralNotes.Communication.Enum
{
    public enum ExerciseLocation
    {
        Gym = 1,
        Home = 2
    }
}

Requisições (Requests)

As classes de requisição definidas neste diretório são responsáveis por encapsular os dados enviados para os diferentes endpoints ou serviços da aplicação. Cada classe de requisição corresponde a uma operação específica que pode ser realizada, como alterar a senha do usuário, realizar login, registrar um novo usuário, entre outras.

  • RequestChangePassword: Responsável por encapsular os dados necessários para a alteração de senha do usuário.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestChangePassword
    {
        public string Password { get; set; } = string.Empty;
        public string NewPassword { get; set; } = string.Empty;
    }
}
  • RequestDashboard: Encapsula os dados necessários para solicitar o dashboard, incluindo o nome do usuário e o dia da semana.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestDashboard
    {
        public string Name { get; set; } = string.Empty;
        public DayOfWeek DayOfWeek { get; set; }
    }
}
  • RequestExercise: Responsável por encapsular os dados de um exercício, incluindo nome, localização, carga, repetições, tempo de descanso, equipamento e detalhes.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestExercise
    {
        public string Name { get; set; } = string.Empty;
        public ExerciseLocation Location { get; set; }
        public double Charge { get; set; }
        public int Repetitions { get; set; }
        public int RestTime { get; set; }
        public string Equipment { get; set; } = string.Empty;
        public string Details { get; set; } = string.Empty;
    }
}
  • RequestLogin: Encapsula os dados necessários para a solicitação de login, incluindo o email e a senha do usuário.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestLogin
    {
        public string Email { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
    }
}
  • RequestRegisteredUser: Responsável por encapsular os dados necessários para registrar um novo usuário, incluindo nome, email e senha.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestRegisteredUser
    {
        public string Name { get; set; } = string.Empty;
        public string Email { get; set; } = string.Empty;
        public string Password { get; set; } = string.Empty;
    }
}
  • RequestRoutine: Encapsula os dados necessários para definir uma rotina de exercícios, incluindo nome, dia da semana e a lista de exercícios.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestRoutine
    {
        public RequestRoutine()
        {
            Exercises = new List<RequestExercise>();
        }
        public string Name { get; set; } = string.Empty;
        public DayOfWeek DayOfWeek { get; set; }
        public List<RequestExercise> Exercises { get; set; }
    }
}
  • RequestUpdateUser: Responsável por encapsular os dados necessários para atualizar o perfil do usuário, incluindo nome e email.
namespace MyGeneralNotes.Communication.Requests
{
    public class RequestUpdateUser
    {
        public string Name { get; set; } = string.Empty;
        public string Email { get; set; } = string.Empty;
    }
}

Respostas (Responses)

As classes de resposta neste diretório fornecem uma estrutura para os dados retornados pelos endpoints ou serviços da aplicação. Cada classe de resposta corresponde a um tipo específico de informação que pode ser recebida, como informações do perfil do usuário, rotinas de treino, erros, entre outras.

  • ResponseDashboard: Responsável por encapsular os dados do dashboard, incluindo uma lista de rotinas.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseDashboard
    {
        public List<ResponseRoutinesDashboard> Routines { get; set; } = new List<ResponseRoutinesDashboard>();
    }
}
  • ResponseError: Encapsula os dados de erro, incluindo uma lista de mensagens de erro e um indicador de expiração do token.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseError
    {
        public IList<string> Errors { get; set; }
        public bool TokenIsExpired { get; set; }

        public ResponseError(IList<string> errors) => Errors = errors;
        public ResponseError(string error)
        {
            Errors = new List<string> { error };
        }
    }
}
  • ResponseExercice: Responsável por encapsular os dados de um exercício, incluindo ID, nome, localização, carga, repetições, tempo de descanso, equipamento e detalhes.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseExercice
    {
        public string Id { get; set; } = string.Empty;
        public string Name { get; set; } = string.Empty;
        public ExerciseLocation Location { get; set; }
        public double Charge { get; set; }
        public int Repetitions { get; set; }
        public int RestTime { get; set; }
        public string Equipment { get; set; } = string.Empty;
        public string Details { get; set; } = string.Empty;
    }
}
  • ResponseRegisteredUser: Encapsula os dados de um usuário registrado, incluindo nome e tokens de acesso.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseRegisteredUser
    {
        public string Name { get; set; } = string.Empty;
        public ResponseTokens Tokens { get; set; } = new ResponseTokens();
    }
}
  • ResponseRoutine: Responsável por encapsular os dados de uma rotina de exercícios, incluindo ID, nome, dia da semana e lista de exercícios.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseRoutine
    {
        public ResponseRoutine()
        {
            Exercises = new List<RequestExercise>();
        }
        public string Id { get; set; } = string.Empty;
        public string Name { get; set; } = string.Empty;
        public DayOfWeek DayOfWeek { get; set; }
        public List<RequestExercise> Exercises { get; set; }
    }
}
  • ResponseRoutinesDashboard: Encapsula os dados de uma rotina de treino para exibição no dashboard, incluindo nome, dia da semana e contagem de exercícios.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseRoutinesDashboard
    {
        public string Name { get; set; } = string.Empty;
        public DayOfWeek DayOfWeek { get; set; }
        public int ExerciseCount { get; set; }
    }
}
  • ResponseTokens: Responsável por encapsular os tokens de acesso, incluindo o token de acesso JWT.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseTokens
    {
        public string AccessToken { get; set; } = string.Empty;
    }
}
  • ResponseUserProfile: Encapsula os dados do perfil do usuário, incluindo nome e email.
namespace MyGeneralNotes.Communication.Responses
{
    public class ResponseUserProfile
    {
        public string Name { get; set; } = string.Empty;
        public string Email { get; set; } = string.Empty;
    }
}

Encerramento do diretório de Comunicação

Essas classes de requisição e resposta são fundamentais para garantir uma comunicação eficaz e uma integração bem-sucedida entre os diferentes componentes da nossa aplicação. Elas fornecem uma maneira padronizada e consistente de trocar dados, facilitando o desenvolvimento, manutenção e escalabilidade do sistema.


Próxima: MyGeneralNotes.Application

⚠️ **GitHub.com Fallback** ⚠️