From a96000ee85234433081bf86401166ec9e04295f2 Mon Sep 17 00:00:00 2001 From: Maximillian Arruda Date: Fri, 25 Feb 2022 02:36:19 -0300 Subject: [PATCH] Criando Entidades --- README.md | 1 - pom.xml | 457 +++++++++--------- .../arrudalabs/mizudo/model/DadosFisicos.java | 19 + .../arrudalabs/mizudo/model/DadosGerais.java | 13 + .../arrudalabs/mizudo/model/Endereco.java | 15 + .../mizudo/model/ExameGraduacao.java | 43 ++ .../arrudalabs/mizudo/model/ExameMedico.java | 22 + .../github/arrudalabs/mizudo/model/Falta.java | 20 + .../arrudalabs/mizudo/model/Graduacao.java | 17 + .../mizudo/model/GraduacaoNivel.java | 8 + .../arrudalabs/mizudo/model/Membro.java | 38 ++ .../arrudalabs/mizudo/model/MembroId.java | 9 + .../arrudalabs/mizudo/model/MembroTurma.java | 16 + .../mizudo/model/MembroTurmaPK.java | 14 + .../mizudo/model/NivelGraduacao.java | 25 + .../arrudalabs/mizudo/model/Papeis.java | 9 + .../arrudalabs/mizudo/model/Responsavel.java | 32 ++ .../github/arrudalabs/mizudo/model/Sexo.java | 7 + .../arrudalabs/mizudo/model/Telefone.java | 12 + .../arrudalabs/mizudo/model/TipoTelefone.java | 6 + .../github/arrudalabs/mizudo/model/Turma.java | 12 + .../arrudalabs/mizudo/model/Usuario.java | 34 ++ src/main/resources/application.properties | 9 + 23 files changed, 612 insertions(+), 226 deletions(-) create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/DadosFisicos.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/DadosGerais.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Endereco.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/ExameGraduacao.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/ExameMedico.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Falta.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Graduacao.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/GraduacaoNivel.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Membro.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/MembroId.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/MembroTurma.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/MembroTurmaPK.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/NivelGraduacao.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Papeis.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Responsavel.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Sexo.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Telefone.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/TipoTelefone.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Turma.java create mode 100644 src/main/java/io/github/arrudalabs/mizudo/model/Usuario.java diff --git a/README.md b/README.md index ae6ced8..0176ea3 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,6 @@ Estrutura: - INSTRUTOR - EXAMINADOR - COORDENADOR - - CONVIDADO - Turmas - horario diff --git a/pom.xml b/pom.xml index fc36062..83cc4ba 100644 --- a/pom.xml +++ b/pom.xml @@ -1,237 +1,244 @@ - - 4.0.0 - io.github.arrudalabs - mizudo-app - 1.0.0-SNAPSHOT - - 3.8.1 - false - 11 - UTF-8 - UTF-8 - quarkus-bom - io.quarkus.platform - 2.7.1.Final - 3.0.0-M5 - 1.7.5 - - - - - ${quarkus.platform.group-id} - ${quarkus.platform.artifact-id} - ${quarkus.platform.version} - pom - import - - - + + 4.0.0 + io.github.arrudalabs + mizudo-app + 1.0.0-SNAPSHOT + + 3.8.1 + false + 11 + UTF-8 + UTF-8 + quarkus-bom + io.quarkus.platform + 2.7.1.Final + 3.0.0-M5 + 1.7.5 + + - - io.quarkus - quarkus-hibernate-validator - - - io.quarkus - quarkus-resteasy-jsonb - - - io.quarkus - quarkus-resteasy - - - io.quarkus - quarkus-jdbc-postgresql - - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-junit5 - test - - - io.rest-assured - rest-assured - test - + + ${quarkus.platform.group-id} + ${quarkus.platform.artifact-id} + ${quarkus.platform.version} + pom + import + - + + + + io.quarkus + quarkus-hibernate-validator + + + io.quarkus + quarkus-resteasy-jsonb + + + io.quarkus + quarkus-resteasy + + + io.quarkus + quarkus-jdbc-postgresql + + + io.quarkus + quarkus-arc + + + io.quarkus + quarkus-jdbc-h2 + + + io.quarkus + quarkus-hibernate-orm-panache + + + io.quarkus + quarkus-smallrye-openapi + + + io.quarkus + quarkus-junit5 + test + + + io.rest-assured + rest-assured + test + + + + + + ${quarkus.platform.group-id} + quarkus-maven-plugin + ${quarkus.platform.version} + true + + + + build + generate-code + generate-code-tests + + + + + + maven-compiler-plugin + ${compiler-plugin.version} + + + -parameters + + + + + maven-surefire-plugin + ${surefire-plugin.version} + + + org.jboss.logmanager.LogManager + ${maven.home} + + + + + com.github.eirslett + frontend-maven-plugin + ${version.frontend-maven-plugin} + + webapp + + + + maven-resources-plugin + + + copy-resource + process-resources + + copy-resources + + + ${basedir}/target/classes/META-INF/resources/ + + + webapp/dist/webapp + false + + + + + + + + + + + native + + + native + + + - - ${quarkus.platform.group-id} - quarkus-maven-plugin - ${quarkus.platform.version} - true - - - - build - generate-code - generate-code-tests - - - - - - maven-compiler-plugin - ${compiler-plugin.version} + + maven-failsafe-plugin + ${surefire-plugin.version} + + + + integration-test + verify + - - -parameters - + + ${project.build.directory}/${project.build.finalName}-runner + org.jboss.logmanager.LogManager + ${maven.home} + - - - maven-surefire-plugin - ${surefire-plugin.version} + + + + + + + native + + + + Install node and yarn + + + ui.deps + + + + + + com.github.eirslett + frontend-maven-plugin + ${version.frontend-maven-plugin} + + + install node and yarn + + install-node-and-yarn + + + v16.14.0 + v1.22.15 + + + + yarn install + + yarn + - - org.jboss.logmanager.LogManager - ${maven.home} - + install - - - com.github.eirslett - frontend-maven-plugin - ${version.frontend-maven-plugin} + + + + + + + + Build the UI + + + ui + + + + + + com.github.eirslett + frontend-maven-plugin + ${version.frontend-maven-plugin} + + + yarn run build + + yarn + - webapp + run build --output-hashing=all --prod --aot --configuration=production - - - org.apache.maven.plugins - maven-resources-plugin - - - copy-resource - process-resources - - copy-resources - - - ${basedir}/target/classes/META-INF/resources/ - - - webapp/dist/webapp - false - - - - - - + + + - - - - native - - - native - - - - - - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - - ${project.build.directory}/${project.build.finalName}-runner - - org.jboss.logmanager.LogManager - - ${maven.home} - - - - - - - - - native - - - - Install node and yarn - - - ui.deps - - - - - - com.github.eirslett - frontend-maven-plugin - ${version.frontend-maven-plugin} - - - install node and yarn - - install-node-and-yarn - - - v16.14.0 - v1.22.15 - - - - yarn install - - yarn - - - install - - - - - - - - - Build the UI - - - ui - - - - - - com.github.eirslett - frontend-maven-plugin - ${version.frontend-maven-plugin} - - - yarn run build - - yarn - - - run build --output-hashing=all --prod --aot --configuration=production - - - - - - - - + + + diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/DadosFisicos.java b/src/main/java/io/github/arrudalabs/mizudo/model/DadosFisicos.java new file mode 100644 index 0000000..8967600 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/DadosFisicos.java @@ -0,0 +1,19 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.validation.constraints.NotNull; + +@Embeddable +public class DadosFisicos { + + @NotNull + @Enumerated(EnumType.ORDINAL) + public Sexo sexo = Sexo.INDEFINIDO; + + public Double peso; + + public Double altura; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/DadosGerais.java b/src/main/java/io/github/arrudalabs/mizudo/model/DadosGerais.java new file mode 100644 index 0000000..1902910 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/DadosGerais.java @@ -0,0 +1,13 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; +import java.time.LocalDate; + +@Embeddable +public class DadosGerais{ + + public LocalDate dataNascimento; + + public Endereco endereco; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Endereco.java b/src/main/java/io/github/arrudalabs/mizudo/model/Endereco.java new file mode 100644 index 0000000..5359e59 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Endereco.java @@ -0,0 +1,15 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class Endereco { + + public String logradouro; + public String numero; + public String complemento; + public String cidade; + public String uf; + public String cep; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/ExameGraduacao.java b/src/main/java/io/github/arrudalabs/mizudo/model/ExameGraduacao.java new file mode 100644 index 0000000..d22b6b3 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/ExameGraduacao.java @@ -0,0 +1,43 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; + +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; +import java.time.LocalDate; + +@Entity +@Table(name = "exames_graduacao") +public class ExameGraduacao extends PanacheEntity { + + @NotNull + @ManyToOne + @JoinColumn(name = "nivelGraduacao") + public NivelGraduacao nivelGraduacao; + + @NotNull + public LocalDate dataExame; + + @ManyToOne + public Membro examinado; + + @ManyToOne + public Membro examinador; + + @ManyToOne + public Membro conferente; + + @NotNull + public LocalDate dataConferencia; + + public Double notaKihon; + + public Double notaKata; + + public Double notaKumite; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/ExameMedico.java b/src/main/java/io/github/arrudalabs/mizudo/model/ExameMedico.java new file mode 100644 index 0000000..ec8bbce --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/ExameMedico.java @@ -0,0 +1,22 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; + +import javax.persistence.Entity; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import java.time.LocalDate; + +@Entity +@Table(name = "exames_medicos") +public class ExameMedico extends PanacheEntity { + + @ManyToOne + public Membro membro; + + public LocalDate data; + + @Lob + public String obs; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Falta.java b/src/main/java/io/github/arrudalabs/mizudo/model/Falta.java new file mode 100644 index 0000000..12de78f --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Falta.java @@ -0,0 +1,20 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; + +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; +import java.time.LocalDate; + +@Entity +@Table(name = "membros_falta") +public class Falta extends PanacheEntity { + @ManyToOne + public Membro membro; + @ManyToOne + public Turma turma; + @NotNull + public LocalDate data; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Graduacao.java b/src/main/java/io/github/arrudalabs/mizudo/model/Graduacao.java new file mode 100644 index 0000000..3302317 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Graduacao.java @@ -0,0 +1,17 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import java.time.LocalDate; + +@Embeddable +public class Graduacao { + + @ManyToOne + @JoinColumn(name = "nivelGraduacao") + public NivelGraduacao nivelGraduacao; + + public LocalDate dataGraduacao; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/GraduacaoNivel.java b/src/main/java/io/github/arrudalabs/mizudo/model/GraduacaoNivel.java new file mode 100644 index 0000000..539e902 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/GraduacaoNivel.java @@ -0,0 +1,8 @@ +package io.github.arrudalabs.mizudo.model; + +public enum GraduacaoNivel { + BRANCA, + AMARELA, + VERMELHA, + LARAN; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Membro.java b/src/main/java/io/github/arrudalabs/mizudo/model/Membro.java new file mode 100644 index 0000000..8921f96 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Membro.java @@ -0,0 +1,38 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; + +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Entity +@Table(name = "membros") +public class Membro extends PanacheEntity { + + @NotBlank + public String nome; + + public DadosGerais dadosGerais; + + public DadosFisicos dadosFisicos; + + @OneToMany(mappedBy = "membro") + public List examesMedicos; + + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "membros_emails", + joinColumns = @JoinColumn(name = "membro_id")) + @Column(name = "email") + public List emails; + + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "membros_telefones", + joinColumns = @JoinColumn(name = "responsavel_id")) + public List telefones; + + public Graduacao graduacao; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/MembroId.java b/src/main/java/io/github/arrudalabs/mizudo/model/MembroId.java new file mode 100644 index 0000000..4061a15 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/MembroId.java @@ -0,0 +1,9 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.*; +import java.io.Serializable; + +public class MembroId implements Serializable { + @ManyToOne + public Membro membro; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurma.java b/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurma.java new file mode 100644 index 0000000..d6ad07c --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurma.java @@ -0,0 +1,16 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; + +@Entity +@Table(name = "membros_turmas") +public class MembroTurma extends PanacheEntityBase { + + @EmbeddedId + public MembroTurmaPK id; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurmaPK.java b/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurmaPK.java new file mode 100644 index 0000000..3b0b368 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/MembroTurmaPK.java @@ -0,0 +1,14 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; +import javax.persistence.ManyToOne; +import java.io.Serializable; + + +@Embeddable +public class MembroTurmaPK implements Serializable { + @ManyToOne + public Membro membro; + @ManyToOne + public Turma turma; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/NivelGraduacao.java b/src/main/java/io/github/arrudalabs/mizudo/model/NivelGraduacao.java new file mode 100644 index 0000000..9165085 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/NivelGraduacao.java @@ -0,0 +1,25 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +@Entity +@Table(name = "niveis_graduacao") +public class NivelGraduacao extends PanacheEntityBase { + + @Id + @NotBlank + public String nivel; + + @NotBlank + public String descricao; + + @Size(min = 6) + public Integer mesesDeCarencia = 6; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Papeis.java b/src/main/java/io/github/arrudalabs/mizudo/model/Papeis.java new file mode 100644 index 0000000..f88e58b --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Papeis.java @@ -0,0 +1,9 @@ +package io.github.arrudalabs.mizudo.model; + +public enum Papeis { + ALUNO, + INSTRUTOR, + EXAMINADOR, + COORDENADOR, + ADMINISTRADOR; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Responsavel.java b/src/main/java/io/github/arrudalabs/mizudo/model/Responsavel.java new file mode 100644 index 0000000..0e16870 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Responsavel.java @@ -0,0 +1,32 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; + +import javax.persistence.*; +import java.util.Set; + +@Entity +@Table(name = "responsaveis") +public class Responsavel extends PanacheEntity { + + public String nome; + + public Endereco endereco; + + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "responsavel_emails", + joinColumns = @JoinColumn(name = "responsavel_id")) + @Column(name = "email") + public Set emails; + + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "responsavel_telefones", + joinColumns = @JoinColumn(name = "responsavel_id")) + public Set telefones; + + @ManyToMany + public Set membros; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Sexo.java b/src/main/java/io/github/arrudalabs/mizudo/model/Sexo.java new file mode 100644 index 0000000..6ab4d92 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Sexo.java @@ -0,0 +1,7 @@ +package io.github.arrudalabs.mizudo.model; + +public enum Sexo { + INDEFINIDO, + MASCULINO, + FEMININO ; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Telefone.java b/src/main/java/io/github/arrudalabs/mizudo/model/Telefone.java new file mode 100644 index 0000000..1dd6b87 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Telefone.java @@ -0,0 +1,12 @@ +package io.github.arrudalabs.mizudo.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class Telefone { + + public String numero; + + public String contato; + +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/TipoTelefone.java b/src/main/java/io/github/arrudalabs/mizudo/model/TipoTelefone.java new file mode 100644 index 0000000..612212c --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/TipoTelefone.java @@ -0,0 +1,6 @@ +package io.github.arrudalabs.mizudo.model; + +public enum TipoTelefone { + FIXO, + CELULAR, +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Turma.java b/src/main/java/io/github/arrudalabs/mizudo/model/Turma.java new file mode 100644 index 0000000..93ff768 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Turma.java @@ -0,0 +1,12 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntity; + +import javax.persistence.Entity; +import javax.persistence.Table; + +@Entity +@Table(name = "turmas") +public class Turma extends PanacheEntity { + public String descricao; +} diff --git a/src/main/java/io/github/arrudalabs/mizudo/model/Usuario.java b/src/main/java/io/github/arrudalabs/mizudo/model/Usuario.java new file mode 100644 index 0000000..a07fda0 --- /dev/null +++ b/src/main/java/io/github/arrudalabs/mizudo/model/Usuario.java @@ -0,0 +1,34 @@ +package io.github.arrudalabs.mizudo.model; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; + +import javax.persistence.*; +import java.util.Set; + +@Entity +@Table(name = "usuarios") +public class Usuario extends PanacheEntityBase { + + @Id + public String username; + + @Lob + @Basic(optional = true) + public byte[] salt; + + @Lob + @Basic(optional = true) + public byte[] hash; + + @ManyToOne + public Membro membro; + + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "usuarios_papeis", + joinColumns = @JoinColumn(name = "username")) + @Column(name = "papel") + @Enumerated(EnumType.STRING) + public Set papeis; + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29..8baa98f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,9 @@ +quarkus.http.cors=true + +%dev.quarkus.datasource.db-kind=h2 +%dev.quarkus.datasource.username=username-default +%dev.quarkus.datasource.jdbc.url=jdbc:h2:mem:default +%dev.quarkus.datasource.jdbc.max-size=13 + +%dev.quarkus.hibernate-orm.database.generation=drop-and-create +%dev.quarkus.hibernate-orm.log.sql=true \ No newline at end of file