class Ciclo {
- descricao: String
- inicio: DateTime
- termino: DateTime
- geradoEm: DateTime
- intensidade: Intensidade // enum: Leve, Moderada, Grave
- tipo: TipoCiclo // enum: Mania, Depressão, Misto, Estável
- estaConfirmado: Boolean
}
class Humor {
- descricao: String
- momento: DateTime
- avaliacao: int // 1 a 10
- nivelAnsiedade: int
- nivelEstresse: int
- nivelEnergia: int
}
class ComponenteHumor {
- descricao: String
- emocao: TipoEmocao // enum: Alegria, Tristeza, Raiva, Medo, Nojo, Surpresa
- intensidade: Intensidade // enum: Leve, Moderada, Grave
}
class Usuario {
- nome: String
- email: String
- senhaCriptografada: String
}
class Intervencao {
- descricao: String
- tipo: TipoIntervencao // enum: Medicamento, Terapia, Meditação, ...
- eficacia: int // 1 a 10
- inicio: DateTime
- termino: DateTime
}
class Gatilho {
- descricao: String
- categoria: TipoGatilho // enum: Social, Ambiental, Emocional, Físico, Outro
}
class Lembrete {
- horario: Time
- descricao: String
- ativo: Boolean
}
class QualidadeSono {
- media: float // Média de horas dormidas, uma casa decimal, de 5 em 5, ex: 7.5
- qualidade: int // 1 a 10
- data: Date
- anotacoes: String // Texto livre para anotações sobre o sono
}
class RelatorioSemanal {
- dataInicio: Date
- dataFim: Date
- humorMedio: float // Média de avaliações de humor
- ansiedadeMedia: float // Média de níveis de ansiedade
- estresseMedio: float // Média de níveis de estresse
- energiaMedia: float // Média de níveis de energia
- sonoMedio: float // Média de horas dormidas
- cicloRelacionado: Ciclo
- qualidadeSonoMedia: float // Média de qualidade do sono
- intervencaoMaisUsada: String // Descrição da intervenção mais utilizada
- gatilhoMaisFrequente: String // Descrição do gatilho mais frequente
- cicloFoiConfirmado: Boolean // Indica se o ciclo foi confirmado ou não
- observacoes: String // Texto livre para observações gerais do relatório
}