diff --git a/backlib/.classpath b/backlib/.classpath new file mode 100644 index 0000000..653dfd7 --- /dev/null +++ b/backlib/.classpath @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/backlib/.project b/backlib/.project new file mode 100644 index 0000000..6b0251e --- /dev/null +++ b/backlib/.project @@ -0,0 +1,23 @@ + + + backlib + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/backlib/.settings/org.eclipse.jdt.apt.core.prefs b/backlib/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/backlib/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/backlib/.settings/org.eclipse.jdt.core.prefs b/backlib/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..1b6e1ef --- /dev/null +++ b/backlib/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/backlib/.settings/org.eclipse.m2e.core.prefs b/backlib/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/backlib/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/backlib/pom.xml b/backlib/pom.xml new file mode 100644 index 0000000..40541b5 --- /dev/null +++ b/backlib/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + net.miarma + backend + 1.0.0 + + backlib + + + + jakarta.validation + jakarta.validation-api + 3.1.1 + + + \ No newline at end of file diff --git a/core/src/main/java/net/miarma/backend/core/dto/ChangePasswordRequest.java b/backlib/src/main/java/net/miarma/backlib/dto/ChangePasswordRequest.java similarity index 95% rename from core/src/main/java/net/miarma/backend/core/dto/ChangePasswordRequest.java rename to backlib/src/main/java/net/miarma/backlib/dto/ChangePasswordRequest.java index 46af3fc..41c0e32 100644 --- a/core/src/main/java/net/miarma/backend/core/dto/ChangePasswordRequest.java +++ b/backlib/src/main/java/net/miarma/backlib/dto/ChangePasswordRequest.java @@ -1,4 +1,4 @@ -package net.miarma.backend.core.dto; +package net.miarma.backlib.dto; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; diff --git a/core/src/main/java/net/miarma/backend/core/dto/CredentialDto.java b/backlib/src/main/java/net/miarma/backlib/dto/CredentialDto.java similarity index 66% rename from core/src/main/java/net/miarma/backend/core/dto/CredentialDto.java rename to backlib/src/main/java/net/miarma/backlib/dto/CredentialDto.java index b5e9cf3..b68547f 100644 --- a/core/src/main/java/net/miarma/backend/core/dto/CredentialDto.java +++ b/backlib/src/main/java/net/miarma/backlib/dto/CredentialDto.java @@ -1,12 +1,11 @@ -package net.miarma.backend.core.dto; +package net.miarma.backlib.dto; import java.time.Instant; import java.util.UUID; -import net.miarma.backend.core.model.Credential; - public class CredentialDto { - private UUID credentialId; + private UUID credentialId; + private UUID userId; private Byte serviceId; private String username; private String email; @@ -16,73 +15,64 @@ public class CredentialDto { public CredentialDto() {} - public CredentialDto(Credential credential) { - this.credentialId = credential.getCredentialId(); - this.serviceId = credential.getServiceId(); - this.username = credential.getUsername(); - this.email = credential.getEmail(); - this.status = credential.getStatus(); - this.createdAt = credential.getCreatedAt(); - this.updatedAt = credential.getUpdatedAt(); - } - - public static CredentialDto fromEntity(Credential credential) { - if (credential == null) return null; - return new CredentialDto(credential); + public CredentialDto(UUID credentialId, UUID userId, Byte serviceId, String username, String email, + Byte status, Instant createdAt, Instant updatedAt) { + this.credentialId = credentialId; + this.userId = userId; + this.serviceId = serviceId; + this.username = username; + this.email = email; + this.status = status; + this.createdAt = createdAt; + this.updatedAt = updatedAt; } + // Getters y setters public UUID getCredentialId() { return credentialId; } - public void setCredentialId(UUID credentialId) { this.credentialId = credentialId; } - + public UUID getUserId() { + return userId; + } + public void setUserId(UUID userId) { + this.userId = userId; + } public Byte getServiceId() { return serviceId; } - public void setServiceId(Byte serviceId) { this.serviceId = serviceId; } - public String getUsername() { return username; } - public void setUsername(String username) { this.username = username; } - public String getEmail() { return email; } - public void setEmail(String email) { this.email = email; } - public Byte getStatus() { return status; } - public void setStatus(Byte status) { this.status = status; } - public Instant getCreatedAt() { return createdAt; } - public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } - public Instant getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(Instant updatedAt) { this.updatedAt = updatedAt; } diff --git a/core/src/main/java/net/miarma/backend/core/dto/LoginRequest.java b/backlib/src/main/java/net/miarma/backlib/dto/LoginRequest.java similarity index 94% rename from core/src/main/java/net/miarma/backend/core/dto/LoginRequest.java rename to backlib/src/main/java/net/miarma/backlib/dto/LoginRequest.java index 888949f..8ed9cda 100644 --- a/core/src/main/java/net/miarma/backend/core/dto/LoginRequest.java +++ b/backlib/src/main/java/net/miarma/backlib/dto/LoginRequest.java @@ -1,4 +1,4 @@ -package net.miarma.backend.core.dto; +package net.miarma.backlib.dto; import jakarta.validation.constraints.NotBlank; diff --git a/core/src/main/java/net/miarma/backend/core/dto/LoginResponse.java b/backlib/src/main/java/net/miarma/backlib/dto/LoginResponse.java similarity index 94% rename from core/src/main/java/net/miarma/backend/core/dto/LoginResponse.java rename to backlib/src/main/java/net/miarma/backlib/dto/LoginResponse.java index 3a789a8..d4b22df 100644 --- a/core/src/main/java/net/miarma/backend/core/dto/LoginResponse.java +++ b/backlib/src/main/java/net/miarma/backlib/dto/LoginResponse.java @@ -1,4 +1,4 @@ -package net.miarma.backend.core.dto; +package net.miarma.backlib.dto; public class LoginResponse { private String token; diff --git a/core/src/main/java/net/miarma/backend/core/dto/RegisterRequest.java b/backlib/src/main/java/net/miarma/backlib/dto/RegisterRequest.java similarity index 95% rename from core/src/main/java/net/miarma/backend/core/dto/RegisterRequest.java rename to backlib/src/main/java/net/miarma/backlib/dto/RegisterRequest.java index f6f8bea..032e0c0 100644 --- a/core/src/main/java/net/miarma/backend/core/dto/RegisterRequest.java +++ b/backlib/src/main/java/net/miarma/backlib/dto/RegisterRequest.java @@ -1,4 +1,4 @@ -package net.miarma.backend.core.dto; +package net.miarma.backlib.dto; public class RegisterRequest { private String username; diff --git a/backlib/src/main/java/net/miarma/backlib/dto/UserDto.java b/backlib/src/main/java/net/miarma/backlib/dto/UserDto.java new file mode 100644 index 0000000..ac17abc --- /dev/null +++ b/backlib/src/main/java/net/miarma/backlib/dto/UserDto.java @@ -0,0 +1,71 @@ +package net.miarma.backlib.dto; + +import java.time.Instant; +import java.util.UUID; + +public class UserDto { + private UUID userId; + private String displayName; + private String avatar; + private Byte globalStatus; + private Byte globalRole; + private Instant createdAt; + private Instant updatedAt; + + public UserDto() {} + + public UserDto(UUID userId, String displayName, String avatar, Byte globalStatus, Byte globalRole, + Instant createdAt, Instant updatedAt) { + this.userId = userId; + this.displayName = displayName; + this.avatar = avatar; + this.globalStatus = globalStatus; + this.globalRole = globalRole; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + // Getters y setters + public UUID getUserId() { + return userId; + } + public void setUserId(UUID userId) { + this.userId = userId; + } + public String getDisplayName() { + return displayName; + } + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + public String getAvatar() { + return avatar; + } + public void setAvatar(String avatar) { + this.avatar = avatar; + } + public Byte getGlobalStatus() { + return globalStatus; + } + public void setGlobalStatus(Byte globalStatus) { + this.globalStatus = globalStatus; + } + public Byte getGlobalRole() { + return globalRole; + } + public void setGlobalRole(Byte globalRole) { + this.globalRole = globalRole; + } + public Instant getCreatedAt() { + return createdAt; + } + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } + public Instant getUpdatedAt() { + return updatedAt; + } + public void setUpdatedAt(Instant updatedAt) { + this.updatedAt = updatedAt; + } +} diff --git a/core/src/main/java/net/miarma/backend/core/util/UuidUtils.java b/backlib/src/main/java/net/miarma/backlib/util/UuidUtil.java similarity index 87% rename from core/src/main/java/net/miarma/backend/core/util/UuidUtils.java rename to backlib/src/main/java/net/miarma/backlib/util/UuidUtil.java index 4cbf4cd..2d915f3 100644 --- a/core/src/main/java/net/miarma/backend/core/util/UuidUtils.java +++ b/backlib/src/main/java/net/miarma/backlib/util/UuidUtil.java @@ -1,9 +1,9 @@ -package net.miarma.backend.core.util; +package net.miarma.backlib.util; import java.nio.ByteBuffer; import java.util.UUID; -public class UuidUtils { +public class UuidUtil { public static byte[] uuidToBin(UUID uuid) { ByteBuffer bb = ByteBuffer.allocate(16); bb.putLong(uuid.getMostSignificantBits()); diff --git a/backlib/target/classes/META-INF/MANIFEST.MF b/backlib/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a5622f8 --- /dev/null +++ b/backlib/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Build-Jdk-Spec: 21 +Created-By: Maven Integration for Eclipse + diff --git a/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.properties b/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.properties new file mode 100644 index 0000000..2cecf85 --- /dev/null +++ b/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Sun Jan 18 04:49:28 CET 2026 +artifactId=backlib +groupId=net.miarma +m2e.projectLocation=/home/jomaa/git/miarma-backend/backlib +m2e.projectName=backlib +version=1.0.0 diff --git a/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.xml b/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.xml new file mode 100644 index 0000000..40541b5 --- /dev/null +++ b/backlib/target/classes/META-INF/maven/net.miarma/backlib/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + net.miarma + backend + 1.0.0 + + backlib + + + + jakarta.validation + jakarta.validation-api + 3.1.1 + + + \ No newline at end of file diff --git a/cine/.project b/cine/.project index d49c5d8..6572ffe 100644 --- a/cine/.project +++ b/cine/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + org.eclipse.jdt.core.javanature diff --git a/cine/.settings/org.springframework.ide.eclipse.prefs b/cine/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..a12794d --- /dev/null +++ b/cine/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/core/.project b/core/.project index 529a1c6..7b31b8f 100644 --- a/core/.project +++ b/core/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + org.eclipse.jdt.core.javanature diff --git a/core/.settings/org.springframework.ide.eclipse.prefs b/core/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..a12794d --- /dev/null +++ b/core/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/core/pom.xml b/core/pom.xml index d3adb50..d87f464 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -63,6 +63,12 @@ 0.11.5 runtime + + + net.miarma + backlib + 1.0.0 + \ No newline at end of file diff --git a/core/src/main/java/net/miarma/backend/core/controller/AuthController.java b/core/src/main/java/net/miarma/backend/core/controller/AuthController.java index 63bd525..8ffa78f 100644 --- a/core/src/main/java/net/miarma/backend/core/controller/AuthController.java +++ b/core/src/main/java/net/miarma/backend/core/controller/AuthController.java @@ -12,14 +12,14 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import jakarta.validation.Valid; -import net.miarma.backend.core.dto.ChangePasswordRequest; -import net.miarma.backend.core.dto.LoginRequest; -import net.miarma.backend.core.dto.LoginResponse; -import net.miarma.backend.core.dto.RegisterRequest; import net.miarma.backend.core.model.Credential; import net.miarma.backend.core.service.AuthService; import net.miarma.backend.core.service.CredentialService; import net.miarma.backend.core.service.JwtService; +import net.miarma.backlib.dto.ChangePasswordRequest; +import net.miarma.backlib.dto.LoginRequest; +import net.miarma.backlib.dto.LoginResponse; +import net.miarma.backlib.dto.RegisterRequest; @RestController @RequestMapping("/auth") diff --git a/core/src/main/java/net/miarma/backend/core/controller/CredentialController.java b/core/src/main/java/net/miarma/backend/core/controller/CredentialController.java index 5885bfd..f9ae7a3 100644 --- a/core/src/main/java/net/miarma/backend/core/controller/CredentialController.java +++ b/core/src/main/java/net/miarma/backend/core/controller/CredentialController.java @@ -13,9 +13,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import net.miarma.backend.core.dto.CredentialDto; import net.miarma.backend.core.model.Credential; import net.miarma.backend.core.service.CredentialService; +import net.miarma.backlib.dto.CredentialDto; @RestController @RequestMapping("/credentials") diff --git a/core/src/main/java/net/miarma/backend/core/controller/UserController.java b/core/src/main/java/net/miarma/backend/core/controller/UserController.java index 32ee003..4204d23 100644 --- a/core/src/main/java/net/miarma/backend/core/controller/UserController.java +++ b/core/src/main/java/net/miarma/backend/core/controller/UserController.java @@ -14,10 +14,11 @@ import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import net.miarma.backend.core.dto.UserDto; +import net.miarma.backend.core.mapper.UserMapper; import net.miarma.backend.core.model.User; import net.miarma.backend.core.service.JwtService; import net.miarma.backend.core.service.UserService; +import net.miarma.backlib.dto.UserDto; @RestController @RequestMapping("/users") @@ -36,7 +37,7 @@ public class UserController { return ResponseEntity.ok( userService.getAll() .stream() - .map(UserDto::fromEntity) + .map(UserMapper::toDto) .toList() ); } @@ -45,13 +46,13 @@ public class UserController { @PreAuthorize("hasRole('ADMIN')") public ResponseEntity getById(@PathVariable("user_id") UUID userId) { User user = userService.getById(userId); - return ResponseEntity.ok(UserDto.fromEntity(user)); + return ResponseEntity.ok(UserMapper.toDto(user)); } @PutMapping("/{user_id}") @PreAuthorize("hasRole('ADMIN') or #userId == principal.userId") public ResponseEntity update(@PathVariable("user_id") UUID userId, @RequestBody UserDto dto) { - return ResponseEntity.ok(UserDto.fromEntity(userService.update(userId, dto))); + return ResponseEntity.ok(UserMapper.toDto(userService.update(userId, dto))); } @GetMapping("/{user_id}/avatar") @@ -75,6 +76,6 @@ public class UserController { } User user = userService.getById(userId); - return ResponseEntity.ok(UserDto.fromEntity(user)); + return ResponseEntity.ok(UserMapper.toDto(user)); } } diff --git a/core/src/main/java/net/miarma/backend/core/dto/UserDto.java b/core/src/main/java/net/miarma/backend/core/dto/UserDto.java deleted file mode 100644 index 985ce38..0000000 --- a/core/src/main/java/net/miarma/backend/core/dto/UserDto.java +++ /dev/null @@ -1,99 +0,0 @@ -package net.miarma.backend.core.dto; - -import java.time.Instant; -import java.util.UUID; - -import net.miarma.backend.core.model.User; - -public class UserDto { - private UUID userId; - private String displayName; - private String avatar; - private Byte globalStatus; - private Byte globalRole; - private Instant createdAt; - private Instant updatedAt; - - public UserDto() {} - - public UserDto(UUID userId, String displayName, String avatar, Byte globalStatus, Byte globalRole, - Instant createdAt, Instant updatedAt) { - this.userId = userId; - this.displayName = displayName; - this.avatar = avatar; - this.globalStatus = globalStatus; - this.globalRole = globalRole; - this.createdAt = createdAt; - this.updatedAt = updatedAt; - } - - public static UserDto fromEntity(User user) { - if (user == null) return null; - - return new UserDto( - user.getUserId(), - user.getDisplayName(), - user.getAvatar(), - user.getGlobalStatus(), - user.getGlobalRole(), - user.getCreatedAt(), - user.getUpdatedAt() - ); - } - - public UUID getUserId() { - return userId; - } - - public void setUserId(UUID userId) { - this.userId = userId; - } - - public String getDisplayName() { - return displayName; - } - - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - public String getAvatar() { - return avatar; - } - - public void setAvatar(String avatar) { - this.avatar = avatar; - } - - public Byte getGlobalStatus() { - return globalStatus; - } - - public void setGlobalStatus(Byte globalStatus) { - this.globalStatus = globalStatus; - } - - public Byte getGlobalRole() { - return globalRole; - } - - public void setGlobalRole(Byte globalRole) { - this.globalRole = globalRole; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } -} diff --git a/core/src/main/java/net/miarma/backend/core/mapper/CredentialMapper.java b/core/src/main/java/net/miarma/backend/core/mapper/CredentialMapper.java new file mode 100644 index 0000000..7b29db4 --- /dev/null +++ b/core/src/main/java/net/miarma/backend/core/mapper/CredentialMapper.java @@ -0,0 +1,22 @@ +package net.miarma.backend.core.mapper; + +import net.miarma.backend.core.model.Credential; +import net.miarma.backlib.dto.CredentialDto; + +public class CredentialMapper { + + public static CredentialDto toDto(Credential c) { + if (c == null) return null; + + return new CredentialDto( + c.getCredentialId(), + c.getUserId(), + c.getServiceId(), + c.getUsername(), + c.getEmail(), + c.getStatus(), + c.getCreatedAt(), + c.getUpdatedAt() + ); + } +} diff --git a/core/src/main/java/net/miarma/backend/core/mapper/UserMapper.java b/core/src/main/java/net/miarma/backend/core/mapper/UserMapper.java new file mode 100644 index 0000000..30cf440 --- /dev/null +++ b/core/src/main/java/net/miarma/backend/core/mapper/UserMapper.java @@ -0,0 +1,20 @@ +package net.miarma.backend.core.mapper; + +import net.miarma.backend.core.model.User; +import net.miarma.backlib.dto.UserDto; + +public class UserMapper { + public static UserDto toDto(User u) { + if (u == null) return null; + + return new UserDto( + u.getUserId(), + u.getDisplayName(), + u.getAvatar(), + u.getGlobalStatus(), + u.getGlobalRole(), + u.getCreatedAt(), + u.getUpdatedAt() + ); + } +} diff --git a/core/src/main/java/net/miarma/backend/core/model/Credential.java b/core/src/main/java/net/miarma/backend/core/model/Credential.java index 2a83539..bb779bf 100644 --- a/core/src/main/java/net/miarma/backend/core/model/Credential.java +++ b/core/src/main/java/net/miarma/backend/core/model/Credential.java @@ -3,8 +3,10 @@ package net.miarma.backend.core.model; import java.nio.ByteBuffer; import java.time.Instant; import java.util.UUID; + import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -17,6 +19,7 @@ import jakarta.persistence.PreUpdate; import jakarta.persistence.Table; import jakarta.persistence.Transient; import jakarta.persistence.UniqueConstraint; +import net.miarma.backlib.util.UuidUtil; @Entity @Table(name = "credentials", @@ -59,37 +62,25 @@ public class Credential { private User user; @PrePersist - @PreUpdate - private void prePersist() { - if (credentialId != null) { - ByteBuffer bb = ByteBuffer.wrap(new byte[16]); - bb.putLong(credentialId.getMostSignificantBits()); - bb.putLong(credentialId.getLeastSignificantBits()); - credentialIdBin = bb.array(); - } - if (userId != null) { - ByteBuffer bb = ByteBuffer.wrap(new byte[16]); - bb.putLong(userId.getMostSignificantBits()); - bb.putLong(userId.getLeastSignificantBits()); - userIdBin = bb.array(); - } - } + @PreUpdate + private void prePersist() { + if (credentialId != null) { + credentialIdBin = UuidUtil.uuidToBin(credentialId); + } + if (userId != null) { + userIdBin = UuidUtil.uuidToBin(userId); + } + } - @PostLoad - private void postLoad() { - if (credentialIdBin != null) { - ByteBuffer bb = ByteBuffer.wrap(credentialIdBin); - long high = bb.getLong(); - long low = bb.getLong(); - credentialId = new UUID(high, low); - } - if (userIdBin != null) { - ByteBuffer bb = ByteBuffer.wrap(userIdBin); - long high = bb.getLong(); - long low = bb.getLong(); - userId = new UUID(high, low); - } - } + @PostLoad + private void postLoad() { + if (credentialIdBin != null) { + credentialId = UuidUtil.binToUUID(credentialIdBin); + } + if (userIdBin != null) { + userId = UuidUtil.binToUUID(userIdBin); + } + } public UUID getCredentialId() { if (credentialId == null && credentialIdBin != null) { diff --git a/core/src/main/java/net/miarma/backend/core/model/File.java b/core/src/main/java/net/miarma/backend/core/model/File.java index 8d36a25..349845a 100644 --- a/core/src/main/java/net/miarma/backend/core/model/File.java +++ b/core/src/main/java/net/miarma/backend/core/model/File.java @@ -6,9 +6,12 @@ import java.util.UUID; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; +import jakarta.persistence.PostLoad; import jakarta.persistence.PrePersist; +import jakarta.persistence.PreUpdate; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import net.miarma.backlib.util.UuidUtil; @Entity @Table(name = "files") @@ -43,12 +46,25 @@ public class File { private Short context; @PrePersist - public void prePersist() { - if (fileId == null) { - fileId = UUID.randomUUID(); + @PreUpdate + private void prePersist() { + if (fileId != null) { + fileIdBin = UuidUtil.uuidToBin(fileId); } - if (uploadedAt == null) { - uploadedAt = Instant.now(); + + if (uploadedBy != null) { + uploadedByBin = UuidUtil.uuidToBin(uploadedBy); + } + } + + @PostLoad + private void postLoad() { + if (fileIdBin != null) { + fileId = UuidUtil.binToUUID(fileIdBin); + } + + if (uploadedByBin != null) { + uploadedBy = UuidUtil.binToUUID(uploadedByBin); } } diff --git a/core/src/main/java/net/miarma/backend/core/model/User.java b/core/src/main/java/net/miarma/backend/core/model/User.java index 5022bc3..d5edc3b 100644 --- a/core/src/main/java/net/miarma/backend/core/model/User.java +++ b/core/src/main/java/net/miarma/backend/core/model/User.java @@ -1,6 +1,5 @@ package net.miarma.backend.core.model; -import java.nio.ByteBuffer; import java.time.Instant; import java.util.UUID; @@ -15,6 +14,7 @@ import jakarta.persistence.PrePersist; import jakarta.persistence.PreUpdate; import jakarta.persistence.Table; import jakarta.persistence.Transient; +import net.miarma.backlib.util.UuidUtil; @Entity @Table(name = "users") @@ -48,20 +48,14 @@ public class User { @PreUpdate private void prePersist() { if (userId != null) { - ByteBuffer bb = ByteBuffer.wrap(new byte[16]); - bb.putLong(userId.getMostSignificantBits()); - bb.putLong(userId.getLeastSignificantBits()); - userIdBin = bb.array(); + userIdBin = UuidUtil.uuidToBin(userId); } } @PostLoad private void postLoad() { if (userIdBin != null) { - ByteBuffer bb = ByteBuffer.wrap(userIdBin); - long high = bb.getLong(); - long low = bb.getLong(); - userId = new UUID(high, low); + userId = UuidUtil.binToUUID(userIdBin); } } diff --git a/core/src/main/java/net/miarma/backend/core/service/AuthService.java b/core/src/main/java/net/miarma/backend/core/service/AuthService.java index af0dd42..c565b37 100644 --- a/core/src/main/java/net/miarma/backend/core/service/AuthService.java +++ b/core/src/main/java/net/miarma/backend/core/service/AuthService.java @@ -5,13 +5,15 @@ import java.util.UUID; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import net.miarma.backend.core.dto.CredentialDto; -import net.miarma.backend.core.dto.LoginRequest; -import net.miarma.backend.core.dto.LoginResponse; -import net.miarma.backend.core.dto.RegisterRequest; -import net.miarma.backend.core.dto.UserDto; +import net.miarma.backend.core.mapper.CredentialMapper; +import net.miarma.backend.core.mapper.UserMapper; import net.miarma.backend.core.model.Credential; import net.miarma.backend.core.model.User; +import net.miarma.backlib.dto.CredentialDto; +import net.miarma.backlib.dto.LoginRequest; +import net.miarma.backlib.dto.LoginResponse; +import net.miarma.backlib.dto.RegisterRequest; +import net.miarma.backlib.dto.UserDto; @Service public class AuthService { @@ -38,9 +40,9 @@ public class AuthService { String token = jwtService.generateToken(cred.getUserId(), request.getServiceId()); - UserDto userDto = UserDto.fromEntity(cred.getUser()); + UserDto userDto = UserMapper.toDto(cred.getUser()); - CredentialDto credentialDto = CredentialDto.fromEntity(cred); + CredentialDto credentialDto = CredentialMapper.toDto(cred); return new LoginResponse(token, userDto, credentialDto); } @@ -71,6 +73,6 @@ public class AuthService { String token = jwtService.generateToken(user.getUserId(), request.getServiceId()); - return new LoginResponse(token, UserDto.fromEntity(user), CredentialDto.fromEntity(cred)); + return new LoginResponse(token, UserMapper.toDto(user), CredentialMapper.toDto(cred)); } } diff --git a/core/src/main/java/net/miarma/backend/core/service/CredentialService.java b/core/src/main/java/net/miarma/backend/core/service/CredentialService.java index 44e6441..ceba83a 100644 --- a/core/src/main/java/net/miarma/backend/core/service/CredentialService.java +++ b/core/src/main/java/net/miarma/backend/core/service/CredentialService.java @@ -7,12 +7,12 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import net.miarma.backend.core.dto.ChangePasswordRequest; -import net.miarma.backend.core.dto.CredentialDto; import net.miarma.backend.core.model.Credential; import net.miarma.backend.core.model.User; import net.miarma.backend.core.repository.CredentialRepository; -import net.miarma.backend.core.util.UuidUtils; +import net.miarma.backlib.dto.ChangePasswordRequest; +import net.miarma.backlib.dto.CredentialDto; +import net.miarma.backlib.util.UuidUtil; @Service @Transactional @@ -27,7 +27,7 @@ public class CredentialService { } public Credential getById(UUID credentialId) { - byte[] idBytes = UuidUtils.uuidToBin(credentialId); + byte[] idBytes = UuidUtil.uuidToBin(credentialId); return credentialRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("Credential not found")); } @@ -63,7 +63,7 @@ public class CredentialService { } public List getByUserId(UUID userId) { - List creds = credentialRepository.findByUserId(UuidUtils.uuidToBin(userId)); + List creds = credentialRepository.findByUserId(UuidUtil.uuidToBin(userId)); if (creds.isEmpty()) { throw new RuntimeException("User has no credentials"); } @@ -91,14 +91,14 @@ public class CredentialService { } public boolean isOwner(UUID credentialId, UUID userId) { - byte[] idBytes = UuidUtils.uuidToBin(credentialId); + byte[] idBytes = UuidUtil.uuidToBin(credentialId); Credential c = credentialRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("Credential not found")); return c.getUserId().equals(userId); } public Credential update(UUID credentialId, CredentialDto dto) { - byte[] idBytes = UuidUtils.uuidToBin(credentialId); + byte[] idBytes = UuidUtil.uuidToBin(credentialId); Credential cred = credentialRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("Credential not found")); @@ -122,7 +122,7 @@ public class CredentialService { } public Credential updatePassword(UUID credentialId, ChangePasswordRequest request) { - byte[] idBytes = UuidUtils.uuidToBin(credentialId); + byte[] idBytes = UuidUtil.uuidToBin(credentialId); Credential cred = credentialRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("Credential not found")); @@ -136,7 +136,7 @@ public class CredentialService { } public void delete(UUID credentialId) { - byte[] idBytes = UuidUtils.uuidToBin(credentialId); + byte[] idBytes = UuidUtil.uuidToBin(credentialId); if(!credentialRepository.existsById(idBytes)) throw new RuntimeException("Credential not found"); credentialRepository.deleteById(idBytes); diff --git a/core/src/main/java/net/miarma/backend/core/service/FileService.java b/core/src/main/java/net/miarma/backend/core/service/FileService.java index 278efb3..dea77d9 100644 --- a/core/src/main/java/net/miarma/backend/core/service/FileService.java +++ b/core/src/main/java/net/miarma/backend/core/service/FileService.java @@ -14,7 +14,7 @@ import org.springframework.transaction.annotation.Transactional; import net.miarma.backend.core.model.File; import net.miarma.backend.core.repository.FileRepository; -import net.miarma.backend.core.util.UuidUtils; +import net.miarma.backlib.util.UuidUtil; @Service @Transactional @@ -28,7 +28,7 @@ public class FileService { } public File getById(UUID fileId) { - byte[] idBytes = UuidUtils.uuidToBin(fileId); + byte[] idBytes = UuidUtil.uuidToBin(fileId); return fileRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("File not found")); } @@ -66,7 +66,7 @@ public class FileService { } public File update(File file) { - byte[] idBytes = UuidUtils.uuidToBin(file.getFileId()); + byte[] idBytes = UuidUtil.uuidToBin(file.getFileId()); if (!fileRepository.existsById(idBytes)) { throw new RuntimeException("File not found"); } @@ -74,7 +74,7 @@ public class FileService { } public void delete(UUID fileId) { - byte[] idBytes = UuidUtils.uuidToBin(fileId); + byte[] idBytes = UuidUtil.uuidToBin(fileId); if (!fileRepository.existsById(idBytes)) { throw new RuntimeException("File not found"); } @@ -82,7 +82,7 @@ public class FileService { } public boolean isOwner(UUID fileId, UUID userId) { - byte[] fileBytes = UuidUtils.uuidToBin(fileId); + byte[] fileBytes = UuidUtil.uuidToBin(fileId); return fileRepository.findById(fileBytes) .map(f -> f.getUploadedBy().equals(userId)) .orElse(false); diff --git a/core/src/main/java/net/miarma/backend/core/service/UserService.java b/core/src/main/java/net/miarma/backend/core/service/UserService.java index 805d139..4b3dd7a 100644 --- a/core/src/main/java/net/miarma/backend/core/service/UserService.java +++ b/core/src/main/java/net/miarma/backend/core/service/UserService.java @@ -6,10 +6,10 @@ import java.util.UUID; import org.springframework.stereotype.Service; import jakarta.transaction.Transactional; -import net.miarma.backend.core.dto.UserDto; import net.miarma.backend.core.model.User; import net.miarma.backend.core.repository.UserRepository; -import net.miarma.backend.core.util.UuidUtils; +import net.miarma.backlib.dto.UserDto; +import net.miarma.backlib.util.UuidUtil; @Service @Transactional @@ -25,7 +25,7 @@ public class UserService { } public User getById(UUID userId) { - byte[] idBytes = UuidUtils.uuidToBin(userId); + byte[] idBytes = UuidUtil.uuidToBin(userId); return userRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("User not found")); } @@ -46,7 +46,7 @@ public class UserService { } public User update(UUID userId, UserDto dto) { - byte[] idBytes = UuidUtils.uuidToBin(userId); + byte[] idBytes = UuidUtil.uuidToBin(userId); User user = userRepository.findById(idBytes) .orElseThrow(() -> new RuntimeException("User not found")); @@ -70,7 +70,7 @@ public class UserService { } public void delete(UUID userId) { - byte[] idBytes = UuidUtils.uuidToBin(userId); + byte[] idBytes = UuidUtil.uuidToBin(userId); if(!userRepository.existsById(idBytes)) throw new RuntimeException("User not found"); userRepository.deleteById(idBytes); diff --git a/huertos/.project b/huertos/.project index 85aa542..91b7957 100644 --- a/huertos/.project +++ b/huertos/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + org.eclipse.jdt.core.javanature diff --git a/huertos/.settings/org.springframework.ide.eclipse.prefs b/huertos/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..a12794d --- /dev/null +++ b/huertos/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/huertos/src/main/java/net/miarma/backend/huertos/HuertosApplication.java b/huertos/src/main/java/net/miarma/backend/huertos/HuertosApplication.java new file mode 100644 index 0000000..119d2c6 --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/HuertosApplication.java @@ -0,0 +1,11 @@ +package net.miarma.backend.huertos; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class HuertosApplication { + public static void main(String[] args) { + SpringApplication.run(HuertosApplication.class, args); + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Announcement.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Announcement.java new file mode 100644 index 0000000..46dd81f --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Announcement.java @@ -0,0 +1,70 @@ +package net.miarma.backend.huertos.model; + +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_announces") +public class Announcement { + + @Id + @Column(name = "announce_id", columnDefinition = "BINARY(16)") + private UUID announceId; + + @Column(name = "body", nullable = false, columnDefinition = "TEXT") + private String body; + + @Column(name = "priority", nullable = false) + private Byte priority; + + @Column(name = "published_by", columnDefinition = "BINARY(16)", nullable = false) + private UUID publishedBy; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public UUID getAnnounceId() { + return announceId; + } + + public void setAnnounceId(UUID announceId) { + this.announceId = announceId; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public Byte getPriority() { + return priority; + } + + public void setPriority(Byte priority) { + this.priority = priority; + } + + public UUID getPublishedBy() { + return publishedBy; + } + + public void setPublishedBy(UUID publishedBy) { + this.publishedBy = publishedBy; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Balance.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Balance.java new file mode 100644 index 0000000..1beba9d --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Balance.java @@ -0,0 +1,58 @@ +package net.miarma.backend.huertos.model; + +import java.math.BigDecimal; +import java.time.Instant; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_balance") +public class Balance { + + @Id + private Byte id = 1; + + @Column(name = "initial_bank", nullable = false) + private BigDecimal initialBank; + + @Column(name = "initial_cash", nullable = false) + private BigDecimal initialCash; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public Byte getId() { + return id; + } + + public void setId(Byte id) { + this.id = id; + } + + public BigDecimal getInitialBank() { + return initialBank; + } + + public void setInitialBank(BigDecimal initialBank) { + this.initialBank = initialBank; + } + + public BigDecimal getInitialCash() { + return initialCash; + } + + public void setInitialCash(BigDecimal initialCash) { + this.initialCash = initialCash; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Expense.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Expense.java new file mode 100644 index 0000000..e48dc1e --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Expense.java @@ -0,0 +1,93 @@ +package net.miarma.backend.huertos.model; + +import java.math.BigDecimal; +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_expenses") +public class Expense { + + @Id + @Column(name = "expense_id", columnDefinition = "BINARY(16)") + private UUID expenseId; + + @Column(name = "concept", nullable = false, length = 128) + private String concept; + + @Column(name = "amount", nullable = false) + private BigDecimal amount; + + @Column(name = "supplier", nullable = false, length = 128) + private String supplier; + + @Column(name = "invoice", nullable = false, length = 32) + private String invoice; + + @Column(name = "type") + private Byte type; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public UUID getExpenseId() { + return expenseId; + } + + public void setExpenseId(UUID expenseId) { + this.expenseId = expenseId; + } + + public String getConcept() { + return concept; + } + + public void setConcept(String concept) { + this.concept = concept; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getSupplier() { + return supplier; + } + + public void setSupplier(String supplier) { + this.supplier = supplier; + } + + public String getInvoice() { + return invoice; + } + + public void setInvoice(String invoice) { + this.invoice = invoice; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/HuertosUserMetadata.java b/huertos/src/main/java/net/miarma/backend/huertos/model/HuertosUserMetadata.java new file mode 100644 index 0000000..9181dc0 --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/HuertosUserMetadata.java @@ -0,0 +1,136 @@ +package net.miarma.backend.huertos.model; + +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_user_metadata") +public class HuertosUserMetadata { + + @Id + @Column(name = "user_id", columnDefinition = "BINARY(16)") + private UUID userId; + + @Column(name = "member_number", nullable = false, unique = true) + private Integer memberNumber; + + @Column(name = "plot_number", nullable = false) + private Integer plotNumber; + + @Column(name = "dni", nullable = false, unique = true, length = 9) + private String dni; + + @Column(name = "phone", nullable = false, length = 20) + private String phone; + + @Column(name = "type", nullable = false) + private Byte type; + + @Column(name = "role", nullable = false) + private Byte role; + + @Column(name = "notes") + private String notes; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + @Column(name = "assigned_at") + private Instant assignedAt; + + @Column(name = "deactivated_at") + private Instant deactivatedAt; + + public UUID getUserId() { + return userId; + } + + public void setUserId(UUID userId) { + this.userId = userId; + } + + public Integer getMemberNumber() { + return memberNumber; + } + + public void setMemberNumber(Integer memberNumber) { + this.memberNumber = memberNumber; + } + + public Integer getPlotNumber() { + return plotNumber; + } + + public void setPlotNumber(Integer plotNumber) { + this.plotNumber = plotNumber; + } + + public String getDni() { + return dni; + } + + public void setDni(String dni) { + this.dni = dni; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Byte getRole() { + return role; + } + + public void setRole(Byte role) { + this.role = role; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } + + public Instant getAssignedAt() { + return assignedAt; + } + + public void setAssignedAt(Instant assignedAt) { + this.assignedAt = assignedAt; + } + + public Instant getDeactivatedAt() { + return deactivatedAt; + } + + public void setDeactivatedAt(Instant deactivatedAt) { + this.deactivatedAt = deactivatedAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Income.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Income.java new file mode 100644 index 0000000..eeffd0a --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Income.java @@ -0,0 +1,93 @@ +package net.miarma.backend.huertos.model; + +import java.math.BigDecimal; +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_incomes") +public class Income { + + @Id + @Column(name = "income_id", columnDefinition = "BINARY(16)") + private UUID incomeId; + + @Column(name = "user_id", columnDefinition = "BINARY(16)", nullable = false) + private UUID userId; + + @Column(name = "concept", nullable = false, length = 128) + private String concept; + + @Column(name = "amount", nullable = false) + private BigDecimal amount; + + @Column(name = "type") + private Byte type; + + @Column(name = "frequency") + private Byte frequency; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public UUID getIncomeId() { + return incomeId; + } + + public void setIncomeId(UUID incomeId) { + this.incomeId = incomeId; + } + + public UUID getUserId() { + return userId; + } + + public void setUserId(UUID userId) { + this.userId = userId; + } + + public String getConcept() { + return concept; + } + + public void setConcept(String concept) { + this.concept = concept; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Byte getFrequency() { + return frequency; + } + + public void setFrequency(Byte frequency) { + this.frequency = frequency; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/PreUser.java b/huertos/src/main/java/net/miarma/backend/huertos/model/PreUser.java new file mode 100644 index 0000000..4c2b681 --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/PreUser.java @@ -0,0 +1,191 @@ +package net.miarma.backend.huertos.model; + +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_pre_users") +public class PreUser { + + @Id + @Column(name = "pre_user_id", columnDefinition = "BINARY(16)") + private UUID preUserId; + + @Column(name = "request_id", columnDefinition = "BINARY(16)", nullable = false) + private UUID requestId; + + @Column(name = "user_name", nullable = false, length = 64) + private String userName; + + @Column(name = "display_name", nullable = false, length = 128) + private String displayName; + + @Column(name = "dni", nullable = false, length = 9) + private String dni; + + @Column(name = "phone", nullable = false, length = 20) + private String phone; + + @Column(name = "email", nullable = false, length = 128) + private String email; + + @Column(name = "password", length = 256) + private String password; + + @Column(name = "address", length = 128) + private String address; + + @Column(name = "zip_code", length = 10) + private String zipCode; + + @Column(name = "city", length = 64) + private String city; + + @Column(name = "member_number") + private Integer memberNumber; + + @Column(name = "plot_number") + private Integer plotNumber; + + @Column(name = "type", nullable = false) + private Byte type; + + @Column(name = "role", nullable = false) + private Byte role; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public UUID getPreUserId() { + return preUserId; + } + + public void setPreUserId(UUID preUserId) { + this.preUserId = preUserId; + } + + public UUID getRequestId() { + return requestId; + } + + public void setRequestId(UUID requestId) { + this.requestId = requestId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getDni() { + return dni; + } + + public void setDni(String dni) { + this.dni = dni; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public Integer getMemberNumber() { + return memberNumber; + } + + public void setMemberNumber(Integer memberNumber) { + this.memberNumber = memberNumber; + } + + public Integer getPlotNumber() { + return plotNumber; + } + + public void setPlotNumber(Integer plotNumber) { + this.plotNumber = plotNumber; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Byte getRole() { + return role; + } + + public void setRole(Byte role) { + this.role = role; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } +} diff --git a/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java b/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java new file mode 100644 index 0000000..6851fe0 --- /dev/null +++ b/huertos/src/main/java/net/miarma/backend/huertos/model/Request.java @@ -0,0 +1,82 @@ +package net.miarma.backend.huertos.model; + +import java.time.Instant; +import java.util.UUID; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "huertos_requests") +public class Request { + + @Id + @Column(name = "request_id", columnDefinition = "BINARY(16)") + private UUID requestId; + + @Column(name = "type", nullable = false) + private Byte type; + + @Column(name = "status", nullable = false) + private Byte status; + + @Column(name = "requested_by", columnDefinition = "BINARY(16)") + private UUID requestedBy; + + @Column(name = "target_user_id", columnDefinition = "BINARY(16)") + private UUID targetUserId; + + @Column(name = "created_at", nullable = false) + private Instant createdAt; + + public UUID getRequestId() { + return requestId; + } + + public void setRequestId(UUID requestId) { + this.requestId = requestId; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Byte getStatus() { + return status; + } + + public void setStatus(Byte status) { + this.status = status; + } + + public UUID getRequestedBy() { + return requestedBy; + } + + public void setRequestedBy(UUID requestedBy) { + this.requestedBy = requestedBy; + } + + public UUID getTargetUserId() { + return targetUserId; + } + + public void setTargetUserId(UUID targetUserId) { + this.targetUserId = targetUserId; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } + +} diff --git a/huertos/src/main/resources/application.yml b/huertos/src/main/resources/application.yml new file mode 100644 index 0000000..294f6a8 --- /dev/null +++ b/huertos/src/main/resources/application.yml @@ -0,0 +1,47 @@ +server: + port: 8081 + servlet: + context-path: /v2/huertos + +spring: + application: + name: huertos-service + + datasource: + url: jdbc:mariadb://localhost:3306/miarma_v2 + username: admin + password: ositovito + driver-class-name: org.mariadb.jdbc.Driver + + jpa: + open-in-view: false + hibernate: + ddl-auto: update + show-sql: true + properties: + hibernate: + format_sql: true + jdbc: + time_zone: UTC + dialect: org.hibernate.dialect.MariaDBDialect + + jackson: + serialization: + INDENT_OUTPUT: true + date-format: yyyy-MM-dd'T'HH:mm:ss + time-zone: Europe/Madrid + default-property-inclusion: non_null + generator: + WRITE_DATES_AS_TIMESTAMPS: false + +logging: + level: + org.hibernate.SQL: DEBUG + org.hibernate.orm.jdbc.bind: TRACE + org.springframework.security: INFO + +management: + endpoints: + web: + exposure: + include: health,info diff --git a/minecraft/.project b/minecraft/.project index b356ec0..b644dc0 100644 --- a/minecraft/.project +++ b/minecraft/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + org.eclipse.jdt.core.javanature diff --git a/minecraft/.settings/org.springframework.ide.eclipse.prefs b/minecraft/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..a12794d --- /dev/null +++ b/minecraft/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/mpaste/.project b/mpaste/.project index 499668e..b4ba4d2 100644 --- a/mpaste/.project +++ b/mpaste/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + org.eclipse.jdt.core.javanature diff --git a/mpaste/.settings/org.springframework.ide.eclipse.prefs b/mpaste/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..a12794d --- /dev/null +++ b/mpaste/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/pom.xml b/pom.xml index 4e76ab2..6f081fa 100644 --- a/pom.xml +++ b/pom.xml @@ -16,6 +16,7 @@ cine mpaste websocket + backlib