From 06ba25eabd78d4994fc323150da6e58877af7e3c Mon Sep 17 00:00:00 2001 From: Artur Oliveira Date: Mon, 15 Dec 2025 16:13:39 -0300 Subject: [PATCH] =?UTF-8?q?Atualiza=20configura=C3=A7=C3=A3o=20e=20modelo?= =?UTF-8?q?=20de=20usu=C3=A1rios=20-=20Substitui=20application.properties?= =?UTF-8?q?=20por=20application.yaml=20(configura=C3=A7=C3=A3o=20Spring=20?= =?UTF-8?q?Boot=20em=20YAML)=20-=20Adiciona=20entidade/modelo=20Users=20co?= =?UTF-8?q?m=20builder=20-=20Ajusta=20BackendApplication.java=20para=20ref?= =?UTF-8?q?letir=20novas=20configura=C3=A7=C3=B5es/uso=20do=20modelo=20-?= =?UTF-8?q?=20Atualiza=20.gitignore=20para=20ignorar=20diret=C3=B3rios=20e?= =?UTF-8?q?=20artefatos=20de=20build=20e=20dados=20locais=20Ref.:=20padron?= =?UTF-8?q?iza=C3=A7=C3=A3o=20de=20config,=20prepara=C3=A7=C3=A3o=20para?= =?UTF-8?q?=20persist=C3=AAncia=20e=20melhorias=20de=20estrutura.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/.gitignore | 4 ++ .../servermanager/BackendApplication.java | 7 +++ .../servermanager/model/Users.java | 63 +++++++++++++++++++ .../src/main/resources/application.properties | 1 - backend/src/main/resources/application.yaml | 17 +++++ 5 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/com/hitcommunications/servermanager/model/Users.java delete mode 100644 backend/src/main/resources/application.properties create mode 100644 backend/src/main/resources/application.yaml diff --git a/backend/.gitignore b/backend/.gitignore index c2065bc..056a56a 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -35,3 +35,7 @@ out/ ### VS Code ### .vscode/ + +### Database ### +data/ + diff --git a/backend/src/main/java/com/hitcommunications/servermanager/BackendApplication.java b/backend/src/main/java/com/hitcommunications/servermanager/BackendApplication.java index 4c06f28..aacf78c 100644 --- a/backend/src/main/java/com/hitcommunications/servermanager/BackendApplication.java +++ b/backend/src/main/java/com/hitcommunications/servermanager/BackendApplication.java @@ -2,12 +2,19 @@ package com.hitcommunications.servermanager; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; @SpringBootApplication +@RestController public class BackendApplication { public static void main(String[] args) { SpringApplication.run(BackendApplication.class, args); } + @GetMapping + public String home() { + return "Hello, World!"; + } } diff --git a/backend/src/main/java/com/hitcommunications/servermanager/model/Users.java b/backend/src/main/java/com/hitcommunications/servermanager/model/Users.java new file mode 100644 index 0000000..7e58c17 --- /dev/null +++ b/backend/src/main/java/com/hitcommunications/servermanager/model/Users.java @@ -0,0 +1,63 @@ +package com.hitcommunications.servermanager.model; + +import jakarta.persistence.*; +import lombok.*; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; + +import java.sql.Timestamp; +import java.util.UUID; + +@Entity +@Table(name = "tab_users") +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter +@Builder +public class Users { + + @Id + @GeneratedValue(strategy = GenerationType.UUID) + @Column(updatable = false, nullable = false) + private UUID id; + + @Column(nullable = false, unique = true) + private String username; + + @Column(nullable = false, unique = true, length = 100) + private String email; + + @Column(nullable = false, length = 20) + private String password; + + @Column(nullable = false, length = 30) + private String firstName; + + @Column(nullable = false, length = 30) + private String lastName; + + @CreationTimestamp + @Column(nullable = false) + private Timestamp createdAt; + + @UpdateTimestamp + @Column(nullable = false) + private Timestamp updatedAt; + + private Timestamp lastLogin; + + @PrePersist + private void prePersist() { + if (this.username == null) { + this.username = generateUsername(); + } + } + + public String generateUsername() { + String firstPart = this.firstName != null && this.firstName.length() >= 3 ? this.firstName.substring(0, 3) : (this.firstName != null ? this.firstName : ""); + String secondPart = this.lastName != null && this.lastName.length() >= 3 ? this.lastName.substring(0, 3) : (this.lastName != null ? this.lastName : ""); + this.username = firstPart + secondPart; + return this.username; + } +} diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties deleted file mode 100644 index 3ca17a4..0000000 --- a/backend/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=backend diff --git a/backend/src/main/resources/application.yaml b/backend/src/main/resources/application.yaml new file mode 100644 index 0000000..4ed3051 --- /dev/null +++ b/backend/src/main/resources/application.yaml @@ -0,0 +1,17 @@ +spring: + application: + name: backend + datasource: + url: jdbc:h2:file:./data/db + driver-class-name: org.h2.Driver + username: sa + password: + jpa: + hibernate: + ddl-auto: update + database-platform: org.hibernate.dialect.H2Dialect + h2: + console: + enabled: true + path: /h2-console +