From 0e8515e06e3809850430005732df4c26a779edf0 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 9 Aug 2025 15:50:20 +0200 Subject: [PATCH] FIX Structure of Project --- .../advice/GlobalExceptionHandler.java | 2 +- .../api/v1/AuthenticationRestController.java | 8 +- .../controller/api/v1/UserRestController.java | 2 +- .../configuration/GlobalConfiguration.java | 9 +- .../JwtAuthenticationFilter.java | 2 +- .../configuration/SecurityConfiguration.java | 1 + .../src/main/resources/application-dev.yml | 2 +- bootstrap/src/main/resources/application.yml | 3 + .../dh7789dev/xpeditis/AddressService.java | 1 + .../xpeditis/AuthenticationService.java | 6 +- .../dh7789dev/xpeditis/LicenseService.java | 2 +- .../com/dh7789dev/xpeditis/UserService.java | 2 +- .../dh7789dev/xpeditis/dto/app/Address.java | 16 +++ .../dh7789dev/xpeditis/dto/app/Company.java | 2 +- .../dh7789dev/xpeditis/dto/app/Dimension.java | 11 +- .../dh7789dev/xpeditis/dto/app/Document.java | 10 ++ .../xpeditis/dto/app/ExportFolder.java | 5 +- .../dh7789dev/xpeditis/dto/app/License.java | 2 +- .../xpeditis/dto/app/Notification.java | 15 +++ .../com/dh7789dev/xpeditis/dto/app/Quote.java | 2 +- .../xpeditis/dto/app/QuoteDetail.java | 4 +- .../xpeditis/dto/app/ShipmentTracking.java | 22 ++++ .../xpeditis/dto/app/UserAccount.java | 2 +- .../xpeditis/dto/app/VesselSchedule.java | 39 +++++++ .../dto/request/AuthenticationRequest.java | 2 +- .../dto/request/ChangePasswordRequest.java | 2 +- .../xpeditis/dto/request/RegisterRequest.java | 2 +- .../dto/response/AuthenticationResponse.java | 2 +- .../CustomInternalExceptionResponse.java | 2 +- .../xpeditis/AddressServiceImpl.java | 5 +- .../xpeditis/AuthenticationServiceImpl.java | 10 +- .../xpeditis/CompanyServiceImpl.java | 5 +- .../xpeditis/DimensionServiceImpl.java | 5 +- .../xpeditis/DocumentServiceImpl.java | 5 +- .../xpeditis/ExportFolderServiceImpl.java | 5 +- .../xpeditis/LicenseServiceImpl.java | 5 +- .../xpeditis/NotificationServiceImpl.java | 5 +- .../xpeditis/QuoteDetailsServiceImpl.java | 5 +- .../dh7789dev/xpeditis/QuoteServiceImpl.java | 5 +- .../xpeditis/ShipmentTrackingServiceImpl.java | 5 +- .../dh7789dev/xpeditis/UserServiceImpl.java | 2 +- .../xpeditis/VesselScheduleServiceImpl.java | 5 +- .../xpeditis/AuthenticationRepository.java | 6 +- .../dh7789dev/xpeditis/UserRepository.java | 2 +- .../dh7789dev/xpeditis/dao/AddressDao.java | 6 +- .../dh7789dev/xpeditis/dao/CompanyDao.java | 1 + .../dh7789dev/xpeditis/dao/DimensionDao.java | 6 +- .../dh7789dev/xpeditis/dao/DocumentDao.java | 5 +- .../dh7789dev/xpeditis/dao/LicenseDao.java | 3 +- .../xpeditis/dao/NotificationDao.java | 7 +- .../xpeditis/dao/QuoteDetailDao.java | 5 +- .../xpeditis/dao/ShipmentTrackingDao.java | 5 +- .../com/dh7789dev/xpeditis/dao/TokenDao.java | 5 +- .../com/dh7789dev/xpeditis/dao/UserDao.java | 6 + .../xpeditis/dao/VesselScheduleDao.java | 7 +- .../xpeditis/entity/AddressEntity.java | 60 +++++++++- .../xpeditis/entity/AddressType.java | 12 +- .../xpeditis/entity/CompanyEntity.java | 41 +++++++ .../xpeditis/entity/DimensionEntity.java | 30 +++++ .../xpeditis/entity/DocumentEntity.java | 57 +++++++++ .../xpeditis/entity/ExportFolderEntity.java | 39 +++++++ .../xpeditis/entity/LicenseEntity.java | 32 +++++ .../xpeditis/entity/NotificationEntity.java | 35 ++++++ .../xpeditis/entity/NotificationType.java | 6 +- .../dh7789dev/xpeditis/entity/Permission.java | 4 + .../xpeditis/entity/QuoteDetailEntity.java | 41 ++++++- .../xpeditis/entity/QuoteEntity.java | 110 ++++++++++++++++-- .../com/dh7789dev/xpeditis/entity/Role.java | 16 ++- .../entity/ShipmentTrackingEntity.java | 75 ++++++++++++ .../xpeditis/entity/TokenEntity.java | 10 +- .../dh7789dev/xpeditis/entity/UserEntity.java | 38 ++++-- .../xpeditis/entity/VesselScheduleEntity.java | 54 +++++++++ .../xpeditis/mapper/AddressMapper.java | 18 +++ .../xpeditis/mapper/CompanyMapper.java | 2 +- .../xpeditis/mapper/DimensionMapper.java | 15 ++- .../xpeditis/mapper/DocumentMapper.java | 12 ++ .../xpeditis/mapper/ExportFolderMapper.java | 4 +- .../xpeditis/mapper/LicenseMapper.java | 2 +- .../xpeditis/mapper/NotificationMapper.java | 16 ++- .../xpeditis/mapper/QuoteDetailMapper.java | 15 +++ .../xpeditis/mapper/QuoteMapper.java | 4 +- .../mapper/ShipmentTrackingMapper.java | 15 ++- .../dh7789dev/xpeditis/mapper/UserMapper.java | 2 +- .../xpeditis/mapper/VesselScheduleMapper.java | 13 +++ .../repository/AddressJpaRepository.java | 8 +- .../AuthenticationJwtRepository.java | 38 +++++- .../repository/CompanyJpaRepository.java | 8 +- .../repository/DimensionJpaRepository.java | 9 +- .../repository/DocumentJpaRepository.java | 8 +- .../repository/ExportFolderJpaRepository.java | 8 +- .../repository/LicenseJpaRepository.java | 8 +- .../repository/NotificationJpaRepository.java | 8 +- .../repository/QuoteDetailsJpaRepository.java | 9 +- .../repository/QuoteJpaRepository.java | 8 +- .../ShipmentTrackingJpaRepository.java | 8 +- .../repository/UserJpaRepository.java | 2 +- .../VesselScheduleJpaRepository.java | 8 +- 97 files changed, 1105 insertions(+), 114 deletions(-) create mode 100644 infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/AddressMapper.java diff --git a/application/src/main/java/com/dh7789dev/xpeditis/advice/GlobalExceptionHandler.java b/application/src/main/java/com/dh7789dev/xpeditis/advice/GlobalExceptionHandler.java index 380cc69..b4fd396 100644 --- a/application/src/main/java/com/dh7789dev/xpeditis/advice/GlobalExceptionHandler.java +++ b/application/src/main/java/com/dh7789dev/xpeditis/advice/GlobalExceptionHandler.java @@ -1,7 +1,7 @@ package com.dh7789dev.xpeditis.advice; import com.dh7789dev.xpeditis.NlsService; -import com.dh7789dev.xpeditis.dto.CustomInternalExceptionResponse; +import com.dh7789dev.xpeditis.exception.CustomInternalExceptionResponse; import com.dh7789dev.xpeditis.exception.CustomInternalException; import com.dh7789dev.xpeditis.exception.GlobalNotFoundException; import com.dh7789dev.xpeditis.exception.StorageException; diff --git a/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/AuthenticationRestController.java b/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/AuthenticationRestController.java index e7c2b89..90de943 100644 --- a/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/AuthenticationRestController.java +++ b/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/AuthenticationRestController.java @@ -1,9 +1,9 @@ package com.dh7789dev.xpeditis.controller.api.v1; import com.dh7789dev.xpeditis.AuthenticationService; -import com.dh7789dev.xpeditis.dto.AuthenticationRequest; -import com.dh7789dev.xpeditis.dto.AuthenticationResponse; -import com.dh7789dev.xpeditis.dto.RegisterRequest; +import com.dh7789dev.xpeditis.dto.request.AuthenticationRequest; +import com.dh7789dev.xpeditis.dto.response.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.RegisterRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -22,7 +22,7 @@ public class AuthenticationRestController { private final AuthenticationService service; - @PostMapping("/authenticate") + @PostMapping("/login") public ResponseEntity authenticate( @RequestBody @Valid AuthenticationRequest request) { return ResponseEntity.ok(service.authenticate(request)); diff --git a/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/UserRestController.java b/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/UserRestController.java index cdfe0cc..eef434b 100644 --- a/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/UserRestController.java +++ b/application/src/main/java/com/dh7789dev/xpeditis/controller/api/v1/UserRestController.java @@ -1,7 +1,7 @@ package com.dh7789dev.xpeditis.controller.api.v1; import com.dh7789dev.xpeditis.UserService; -import com.dh7789dev.xpeditis.dto.ChangePasswordRequest; +import com.dh7789dev.xpeditis.dto.request.ChangePasswordRequest; import io.swagger.v3.oas.annotations.Operation; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/GlobalConfiguration.java b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/GlobalConfiguration.java index 92fa196..f52b15e 100755 --- a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/GlobalConfiguration.java +++ b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/GlobalConfiguration.java @@ -78,8 +78,7 @@ public class GlobalConfiguration { CorsConfiguration configuration = new CorsConfiguration(); //configuration.setAllowCredentials(true); configuration.setAllowedOrigins(List.of("http://localhost:8080", "http://localhost:3000", - "http://127.0.0.1:8080", "https://leblr.preprod.weworkstudio.fr","https://leblr.fr", - "https://api.leblr.preprod.weworkstudio.fr/","https://api.leblr.fr/", "https://www.leblr.fr")); + "http://127.0.0.1:8080")); configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH")); configuration.setAllowedHeaders(List.of("*")); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); @@ -87,4 +86,10 @@ public class GlobalConfiguration { return source; } + @Bean + public UserDetailsService userDetailsService() { + return username -> userDao.findByUsername(username) + .orElseThrow(() -> new UsernameNotFoundException(String.format(USER_NOT_FOUND_MSG, username))); + } + } diff --git a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/JwtAuthenticationFilter.java b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/JwtAuthenticationFilter.java index aefa9eb..deeacf6 100644 --- a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/JwtAuthenticationFilter.java +++ b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/JwtAuthenticationFilter.java @@ -24,7 +24,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { private static final String AUTH_HEADER = "Authorization"; private static final String AUTH_TYPE = "Bearer "; - + private final UserDetailsService userDetailsService; private final JwtUtil jwtUtil; private final TokenDao tokenDao; diff --git a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/SecurityConfiguration.java b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/SecurityConfiguration.java index af6fce4..e1b6d77 100755 --- a/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/SecurityConfiguration.java +++ b/bootstrap/src/main/java/com/dh7789dev/xpeditis/configuration/SecurityConfiguration.java @@ -34,6 +34,7 @@ public class SecurityConfiguration { boolean csrfEnabled; private static final String ADMIN_ROLE = "ADMIN"; + private static final String ADMIN_PLATFORM_ROLE = "ADMIN_PLATFORM"; private static final String API_V1_URI = "/api/v1/**"; diff --git a/bootstrap/src/main/resources/application-dev.yml b/bootstrap/src/main/resources/application-dev.yml index c1de8b9..ea2ec7e 100644 --- a/bootstrap/src/main/resources/application-dev.yml +++ b/bootstrap/src/main/resources/application-dev.yml @@ -2,7 +2,7 @@ spring: h2: console: - enabled: 'true' + enabled: 'false' datasource: url: jdbc:h2:mem:xpeditis;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE diff --git a/bootstrap/src/main/resources/application.yml b/bootstrap/src/main/resources/application.yml index b804994..305483c 100755 --- a/bootstrap/src/main/resources/application.yml +++ b/bootstrap/src/main/resources/application.yml @@ -38,7 +38,10 @@ spring: logging: level: org: + org.hibernate.orm.query.sqm.ast.logTree: OFF springframework: + boot: + autoconfigure: OFF web: filter: CommonsRequestLoggingFilter: INFO diff --git a/domain/api/src/main/java/com/dh7789dev/xpeditis/AddressService.java b/domain/api/src/main/java/com/dh7789dev/xpeditis/AddressService.java index 854718d..3897e41 100644 --- a/domain/api/src/main/java/com/dh7789dev/xpeditis/AddressService.java +++ b/domain/api/src/main/java/com/dh7789dev/xpeditis/AddressService.java @@ -1,4 +1,5 @@ package com.dh7789dev.xpeditis; + public interface AddressService { } diff --git a/domain/api/src/main/java/com/dh7789dev/xpeditis/AuthenticationService.java b/domain/api/src/main/java/com/dh7789dev/xpeditis/AuthenticationService.java index 32c7ef5..99476e7 100644 --- a/domain/api/src/main/java/com/dh7789dev/xpeditis/AuthenticationService.java +++ b/domain/api/src/main/java/com/dh7789dev/xpeditis/AuthenticationService.java @@ -1,8 +1,8 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.AuthenticationRequest; -import com.dh7789dev.xpeditis.dto.AuthenticationResponse; -import com.dh7789dev.xpeditis.dto.RegisterRequest; +import com.dh7789dev.xpeditis.dto.request.AuthenticationRequest; +import com.dh7789dev.xpeditis.dto.response.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.RegisterRequest; public interface AuthenticationService { diff --git a/domain/api/src/main/java/com/dh7789dev/xpeditis/LicenseService.java b/domain/api/src/main/java/com/dh7789dev/xpeditis/LicenseService.java index 7b16cec..7914daa 100644 --- a/domain/api/src/main/java/com/dh7789dev/xpeditis/LicenseService.java +++ b/domain/api/src/main/java/com/dh7789dev/xpeditis/LicenseService.java @@ -1,4 +1,4 @@ package com.dh7789dev.xpeditis; -public class LicenseService { +public interface LicenseService { } diff --git a/domain/api/src/main/java/com/dh7789dev/xpeditis/UserService.java b/domain/api/src/main/java/com/dh7789dev/xpeditis/UserService.java index aa94e7e..964e2c1 100644 --- a/domain/api/src/main/java/com/dh7789dev/xpeditis/UserService.java +++ b/domain/api/src/main/java/com/dh7789dev/xpeditis/UserService.java @@ -1,6 +1,6 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.ChangePasswordRequest; +import com.dh7789dev.xpeditis.dto.request.ChangePasswordRequest; import java.security.Principal; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Address.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Address.java index f2174d0..0efac78 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Address.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Address.java @@ -1,4 +1,20 @@ package com.dh7789dev.xpeditis.dto.app; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor public class Address { + private Long id; + private String companyName; + private String address; + private String postalCode; + private String country; + private String type; + private Company company; + private LocalDateTime createdAt; + private LocalDateTime modifiedAt; } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Company.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Company.java index 250df57..fd69b84 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Company.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Company.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Dimension.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Dimension.java index 50cf937..5edb265 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Dimension.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Dimension.java @@ -1,4 +1,13 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor public class Dimension { + private Long id; + private Double length; + private Double width; + private Double height; } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Document.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Document.java index c8f380d..f3fc90d 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Document.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Document.java @@ -1,4 +1,14 @@ package com.dh7789dev.xpeditis.dto.app; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor public class Document { + private Long id; + private String fileName; + private String contentType; + private byte[] data; } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ExportFolder.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ExportFolder.java index 6384514..36ae1a0 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ExportFolder.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ExportFolder.java @@ -1,10 +1,11 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; @Data @@ -15,5 +16,7 @@ public class ExportFolder { private LocalDateTime validationDate; private Company company; private Quote quote; + private List documents; + } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/License.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/License.java index bc39e3b..a2e3996 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/License.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/License.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Notification.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Notification.java index 09b96a1..a64a269 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Notification.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Notification.java @@ -1,4 +1,19 @@ package com.dh7789dev.xpeditis.dto.app; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +@AllArgsConstructor public class Notification { + private Long id; + private String message; + private String type; // EMAIL, SMS, WEB + private boolean read; + private String recipient; + private ExportFolder exportFolder; + private LocalDateTime createdAt; } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Quote.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Quote.java index 317957a..6e59029 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Quote.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/Quote.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/QuoteDetail.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/QuoteDetail.java index 60f8919..80720e6 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/QuoteDetail.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/QuoteDetail.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; @@ -9,7 +9,7 @@ import lombok.Data; public class QuoteDetail { private Long id; private Integer quantity; - private DimensionDTO dimension; + private Dimension dimension; private Double weight; private boolean stackable; private Long quoteId; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ShipmentTracking.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ShipmentTracking.java index 431ed0d..866dbbd 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ShipmentTracking.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/ShipmentTracking.java @@ -1,4 +1,26 @@ package com.dh7789dev.xpeditis.dto.app; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +@AllArgsConstructor public class ShipmentTracking { + private Long id; + private String containerNumber; + private String imoNumber; + private String mmsiNumber; + private String vesselName; + private Double currentLatitude; + private Double currentLongitude; + private Double speedKnots; + private String status; // e.g. "Underway", "Moored", etc. + private LocalDateTime eta; + private LocalDateTime lastReported; + private ExportFolder exportFolder; + private LocalDateTime createdAt; + private LocalDateTime modifiedAt; } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/UserAccount.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/UserAccount.java index d839d33..31a6c7f 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/UserAccount.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/UserAccount.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.app; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/VesselSchedule.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/VesselSchedule.java index ff82c1d..95b88ed 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/VesselSchedule.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/app/VesselSchedule.java @@ -1,4 +1,43 @@ package com.dh7789dev.xpeditis.dto.app; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@AllArgsConstructor public class VesselSchedule { + + private Long id; + + @JsonProperty("IMO") + private String imoNumber; + + @JsonProperty("MMSI") + private String mmsiNumber; + + @JsonProperty("SHIPNAME") + private String vesselName; + + @JsonProperty("VOYAGE") + private String voyageNumber; + + @JsonProperty("DEPARTURE_PORT") + private String departurePort; + + @JsonProperty("ARRIVAL_PORT") + private String arrivalPort; + + @JsonProperty("DEPARTURE_DATE") + private LocalDateTime departureDate; + + @JsonProperty("ARRIVAL_DATE") + private LocalDateTime arrivalDate; + + private LocalDateTime lastUpdated; + + private ExportFolder exportFolder; + } diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/AuthenticationRequest.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/AuthenticationRequest.java index 0fecaa1..faf71f3 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/AuthenticationRequest.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/AuthenticationRequest.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.request; import jakarta.validation.constraints.NotBlank; import lombok.AccessLevel; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/ChangePasswordRequest.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/ChangePasswordRequest.java index bf8c41b..dd6033a 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/ChangePasswordRequest.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/ChangePasswordRequest.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.request; import lombok.AccessLevel; import lombok.Data; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/RegisterRequest.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/RegisterRequest.java index d188dac..c6183a9 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/RegisterRequest.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/request/RegisterRequest.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.request; import jakarta.validation.constraints.NotBlank; import lombok.AccessLevel; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/response/AuthenticationResponse.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/response/AuthenticationResponse.java index 4408824..dec8e31 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/response/AuthenticationResponse.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/dto/response/AuthenticationResponse.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto; +package com.dh7789dev.xpeditis.dto.response; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/domain/data/src/main/java/com/dh7789dev/xpeditis/exception/CustomInternalExceptionResponse.java b/domain/data/src/main/java/com/dh7789dev/xpeditis/exception/CustomInternalExceptionResponse.java index 39be0ec..f284898 100644 --- a/domain/data/src/main/java/com/dh7789dev/xpeditis/exception/CustomInternalExceptionResponse.java +++ b/domain/data/src/main/java/com/dh7789dev/xpeditis/exception/CustomInternalExceptionResponse.java @@ -1,4 +1,4 @@ -package com.dh7789dev.xpeditis.dto.app; +package com.dh7789dev.xpeditis.exception; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AccessLevel; diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/AddressServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/AddressServiceImpl.java index bdd5a67..dd18b14 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/AddressServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/AddressServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class AddressServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class AddressServiceImpl implements AddressService{ } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/AuthenticationServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/AuthenticationServiceImpl.java index d4a2bbe..01086b8 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/AuthenticationServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/AuthenticationServiceImpl.java @@ -1,10 +1,8 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.AuthenticationRequest; -import com.dh7789dev.xpeditis.dto.AuthenticationResponse; -import com.dh7789dev.xpeditis.dto.RegisterRequest; -import com.dh7789dev.xpeditis.dto.UserAccount; -import org.springframework.security.crypto.password.PasswordEncoder; +import com.dh7789dev.xpeditis.dto.request.AuthenticationRequest; +import com.dh7789dev.xpeditis.dto.response.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.RegisterRequest; import org.springframework.stereotype.Service; @Service @@ -23,6 +21,6 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Override public AuthenticationResponse register(RegisterRequest request) { - return null; + return authenticationRepository.register(request); } } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/CompanyServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/CompanyServiceImpl.java index 943cff3..43e1c65 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/CompanyServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/CompanyServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class CompanyServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class CompanyServiceImpl implements CompanyService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/DimensionServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/DimensionServiceImpl.java index 5bffaa1..3e42c27 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/DimensionServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/DimensionServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class DimensionServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class DimensionServiceImpl implements DimensionService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/DocumentServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/DocumentServiceImpl.java index 79a872b..eff92ad 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/DocumentServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/DocumentServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class DocumentServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class DocumentServiceImpl implements DocumentService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/ExportFolderServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/ExportFolderServiceImpl.java index ad1807f..e233e72 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/ExportFolderServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/ExportFolderServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class ExportFolderServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class ExportFolderServiceImpl implements ExportFolderService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/LicenseServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/LicenseServiceImpl.java index 5917a0d..91da424 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/LicenseServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/LicenseServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class LicenseServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class LicenseServiceImpl implements LicenseService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/NotificationServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/NotificationServiceImpl.java index 78bfc3d..ab283ec 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/NotificationServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/NotificationServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class NotificationServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class NotificationServiceImpl implements NotificationService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteDetailsServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteDetailsServiceImpl.java index 25e9942..abd0964 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteDetailsServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteDetailsServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class QuoteDetailsServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class QuoteDetailsServiceImpl implements QuoteDetailsService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteServiceImpl.java index b9d9a2c..b23b8da 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/QuoteServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class QuoteServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class QuoteServiceImpl implements QuoteService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/ShipmentTrackingServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/ShipmentTrackingServiceImpl.java index 97ce398..165a154 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/ShipmentTrackingServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/ShipmentTrackingServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class ShipmentTrackingServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class ShipmentTrackingServiceImpl implements ShipmentTrackingService { } diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/UserServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/UserServiceImpl.java index bbc05a0..5e1c014 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/UserServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/UserServiceImpl.java @@ -1,6 +1,6 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.ChangePasswordRequest; +import com.dh7789dev.xpeditis.dto.request.ChangePasswordRequest; import org.springframework.stereotype.Service; import java.security.Principal; diff --git a/domain/service/src/main/java/com/dh7789dev/xpeditis/VesselScheduleServiceImpl.java b/domain/service/src/main/java/com/dh7789dev/xpeditis/VesselScheduleServiceImpl.java index f37978e..c468528 100644 --- a/domain/service/src/main/java/com/dh7789dev/xpeditis/VesselScheduleServiceImpl.java +++ b/domain/service/src/main/java/com/dh7789dev/xpeditis/VesselScheduleServiceImpl.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis; -public class VesselScheduleServiceImpl { +import org.springframework.stereotype.Service; + +@Service +public class VesselScheduleServiceImpl implements VesselScheduleService { } diff --git a/domain/spi/src/main/java/com/dh7789dev/xpeditis/AuthenticationRepository.java b/domain/spi/src/main/java/com/dh7789dev/xpeditis/AuthenticationRepository.java index db7d130..6107d94 100644 --- a/domain/spi/src/main/java/com/dh7789dev/xpeditis/AuthenticationRepository.java +++ b/domain/spi/src/main/java/com/dh7789dev/xpeditis/AuthenticationRepository.java @@ -1,9 +1,11 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.AuthenticationRequest; -import com.dh7789dev.xpeditis.dto.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.AuthenticationRequest; +import com.dh7789dev.xpeditis.dto.response.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.RegisterRequest; public interface AuthenticationRepository { AuthenticationResponse authenticate(AuthenticationRequest request); + AuthenticationResponse register(RegisterRequest request); } diff --git a/domain/spi/src/main/java/com/dh7789dev/xpeditis/UserRepository.java b/domain/spi/src/main/java/com/dh7789dev/xpeditis/UserRepository.java index 9e3d29f..cdba3d7 100644 --- a/domain/spi/src/main/java/com/dh7789dev/xpeditis/UserRepository.java +++ b/domain/spi/src/main/java/com/dh7789dev/xpeditis/UserRepository.java @@ -1,6 +1,6 @@ package com.dh7789dev.xpeditis; -import com.dh7789dev.xpeditis.dto.ChangePasswordRequest; +import com.dh7789dev.xpeditis.dto.request.ChangePasswordRequest; import java.security.Principal; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/AddressDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/AddressDao.java index 0647b0a..272cd53 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/AddressDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/AddressDao.java @@ -1,4 +1,8 @@ package com.dh7789dev.xpeditis.dao; -public interface Address { +import com.dh7789dev.xpeditis.entity.AddressEntity; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface AddressDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/CompanyDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/CompanyDao.java index 2bcdfc2..9da92f2 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/CompanyDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/CompanyDao.java @@ -3,5 +3,6 @@ package com.dh7789dev.xpeditis.dao; import com.dh7789dev.xpeditis.entity.CompanyEntity; import org.springframework.data.jpa.repository.JpaRepository; + public interface CompanyDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DimensionDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DimensionDao.java index bf917c6..bb911b1 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DimensionDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DimensionDao.java @@ -1,4 +1,8 @@ package com.dh7789dev.xpeditis.dao; -public interface DimensionDao { +import com.dh7789dev.xpeditis.entity.DimensionEntity; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface DimensionDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DocumentDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DocumentDao.java index 9b91d03..16de78f 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DocumentDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/DocumentDao.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis.dao; -public interface DocumentDao { +import com.dh7789dev.xpeditis.entity.DocumentEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface DocumentDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/LicenseDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/LicenseDao.java index 36bfe78..5b6dc6d 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/LicenseDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/LicenseDao.java @@ -1,6 +1,7 @@ package com.dh7789dev.xpeditis.dao; +import com.dh7789dev.xpeditis.entity.LicenseEntity; import org.springframework.data.jpa.repository.JpaRepository; -public interface LicenseDao extends JpaRepository { +public interface LicenseDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/NotificationDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/NotificationDao.java index bcb63de..86b0046 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/NotificationDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/NotificationDao.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis.dao; -public class NotificationDao { -} +import com.dh7789dev.xpeditis.entity.NotificationEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface NotificationDao extends JpaRepository { +} \ No newline at end of file diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/QuoteDetailDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/QuoteDetailDao.java index 2bb7224..51cae50 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/QuoteDetailDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/QuoteDetailDao.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis.dao; -public interface QuoteDetailDao { +import com.dh7789dev.xpeditis.entity.QuoteDetailEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface QuoteDetailDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/ShipmentTrackingDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/ShipmentTrackingDao.java index 2cc1dfe..0761abb 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/ShipmentTrackingDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/ShipmentTrackingDao.java @@ -1,4 +1,7 @@ package com.dh7789dev.xpeditis.dao; -public class ShipmentTrackingDao { +import com.dh7789dev.xpeditis.entity.ShipmentTrackingEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ShipmentTrackingDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/TokenDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/TokenDao.java index 3295898..9a33689 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/TokenDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/TokenDao.java @@ -6,13 +6,16 @@ import org.springframework.data.jpa.repository.Query; import java.util.List; import java.util.Optional; +import org.springframework.stereotype.Repository; + +@Repository public interface TokenDao extends JpaRepository { Optional findByToken(String token); @Query(value = """ - select t from TokenEntity t inner join UserAccountEntity u\s + select t from TokenEntity t inner join UserEntity u\s on t.user.id = u.id\s where u.id = :userId and (t.expired = false or t.revoked = false)\s """) diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/UserDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/UserDao.java index f7aba3f..c033c42 100755 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/UserDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/UserDao.java @@ -5,7 +5,13 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + public interface UserDao extends JpaRepository { + @Query("SELECT u FROM UserEntity u WHERE u.username = :username") Optional findByUsername(String username); + boolean existsByUsername(String username); + } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/VesselScheduleDao.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/VesselScheduleDao.java index a41430e..33a4a87 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/VesselScheduleDao.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/dao/VesselScheduleDao.java @@ -1,4 +1,9 @@ package com.dh7789dev.xpeditis.dao; -public class VesselScheduleDao { +import com.dh7789dev.xpeditis.entity.VesselScheduleEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface VesselScheduleDao extends JpaRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressEntity.java index 09cd03e..1e2d51f 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressEntity.java @@ -1,4 +1,62 @@ package com.dh7789dev.xpeditis.entity; -public class AddressEntity { +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "Address") +public class AddressEntity extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "company_name", length = 100) + private String companyName; + + @Column(name = "address", length = 200) + private String address; + + @Column(name = "postal_code", length = 10) + private String postalCode; + + @Column(name = "country", length = 50) + private String country; + + @Enumerated(EnumType.STRING) + @Column(name = "type", length = 20, nullable = false) + private AddressType type; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "company_id", nullable = false) + private CompanyEntity company; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressType.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressType.java index f6b361f..865016c 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressType.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/AddressType.java @@ -1,4 +1,14 @@ package com.dh7789dev.xpeditis.entity; -public enum AdresseType { +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum AddressType { + SHIPPER("Shipper"), + CONSIGNEE("Consignee"), + NOTIFY("Notify"); + + private final String displayName; } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/CompanyEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/CompanyEntity.java index fd5bc21..c7b2059 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/CompanyEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/CompanyEntity.java @@ -1,19 +1,43 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; +import java.time.LocalDateTime; import java.util.List; @Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "Company") public class CompanyEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @Column(name = "name", length = 50) private String name; + @Column(name = "country", length = 50) private String country; + @Column(name = "siren") + private String siren; + + @Column(name = "num_eori") + private String num_eori; + + @Column(name = "phone", length = 20) + private String phone; + @OneToMany(mappedBy = "company", cascade = CascadeType.ALL) private List users; @@ -22,5 +46,22 @@ public class CompanyEntity extends BaseEntity { @OneToMany(mappedBy = "company", cascade = CascadeType.ALL) private List exports; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DimensionEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DimensionEntity.java index b571c1c..771e448 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DimensionEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DimensionEntity.java @@ -1,4 +1,34 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "dimension") public class DimensionEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "length") + private Double length; + + @Column(name = "width") + private Double width; + + @Column(name = "height") + private Double height; + } + diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DocumentEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DocumentEntity.java index 240c488..a2e7229 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DocumentEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/DocumentEntity.java @@ -1,4 +1,61 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "document") public class DocumentEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(unique = true) + private String reference; + + @Column(name = "file_name", nullable = false) + private String fileName; + + @Column(name = "content_type") + private String contentType; + + @Lob + @Column(name = "data", nullable = false) + private byte[] data; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "export_folder_id") + private ExportFolderEntity exportFolder; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } + } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ExportFolderEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ExportFolderEntity.java index 613c761..3da5b43 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ExportFolderEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ExportFolderEntity.java @@ -1,24 +1,63 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; @Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "exportfolder") public class ExportFolderEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @Column(unique = true) private String reference; + @Column(name = "validationDate") private LocalDateTime validationDate; + @OneToMany(mappedBy = "exportFolder", cascade = CascadeType.ALL, orphanRemoval = true) + private List documents; + + @OneToMany(mappedBy = "exportFolder", cascade = CascadeType.ALL, orphanRemoval = true) + private List trackingUpdates = new ArrayList<>(); + @ManyToOne private CompanyEntity company; @OneToOne @JoinColumn(name = "quote_id", unique = true) private QuoteEntity quote; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/LicenseEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/LicenseEntity.java index 130129a..b8ff10a 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/LicenseEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/LicenseEntity.java @@ -1,17 +1,32 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; import java.time.LocalDate; +import java.time.LocalDateTime; @Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "License") public class LicenseEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @Column(unique = true) private String licenseKey; + @Column(name = "expirationDate") private LocalDate expirationDate; private boolean active; @@ -19,5 +34,22 @@ public class LicenseEntity extends BaseEntity { @OneToOne @JoinColumn(name = "user_id", unique = true) private UserEntity user; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationEntity.java index e632d8c..48cd258 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationEntity.java @@ -1,4 +1,39 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "notification") public class NotificationEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private String message; + + @Enumerated(EnumType.STRING) + @Column(nullable = false) + private NotificationType type; // EMAIL, SMS, WEB + + @Column(nullable = false) + private boolean read = false; + + @Column(name = "recipient") + private String recipient; // email ou numéro téléphone + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "export_folder_id") + private ExportFolderEntity exportFolder; + + @Column(name = "created_at", nullable = false, updatable = false) + private LocalDateTime createdAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + } } + diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationType.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationType.java index 70cdff7..70f7108 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationType.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/NotificationType.java @@ -1,4 +1,8 @@ package com.dh7789dev.xpeditis.entity; -public class NotificationType { +public enum NotificationType { + EMAIL, + SMS, + WEB } + diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Permission.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Permission.java index b37462d..ad28307 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Permission.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Permission.java @@ -7,6 +7,10 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum Permission { + ADMIN_PLATFORM_READ("admin_platform:read"), + ADMIN_PLATFORM_UPDATE("admin_platform:update"), + ADMIN_PLATFORM_DELETE("admin_platform:create"), + ADMIN_PLATFORM_CREATE("admin_platform:delete"), ADMIN_READ("admin:read"), ADMIN_UPDATE("admin:update"), ADMIN_CREATE("admin:create"), diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteDetailEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteDetailEntity.java index c18d9fd..44875b1 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteDetailEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteDetailEntity.java @@ -1,4 +1,43 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "quote_details") public class QuoteDetailEntity { -} + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "quantity") + private Integer quantity; + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "dimension_id", referencedColumnName = "id") + private DimensionEntity dimension; + + @Column(name = "weight") + private Double weight; + + @Column(name = "gerbable") + private boolean gerbable; + + // Relation Many-to-One avec Quote + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "quote_id", nullable = false) + private QuoteEntity quote; + +} \ No newline at end of file diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteEntity.java index 0d4b5a1..a372570 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/QuoteEntity.java @@ -1,25 +1,110 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; -import java.math.BigDecimal; + +import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; @Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "Quote") public class QuoteEntity extends BaseEntity { @Id - @GeneratedValue(strategy = GenerationType.UUID) + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @Column(unique = true, nullable = false) + // General Information + @Column(name = "packager") + private String packager; + + @Column(unique = true) private String reference; - @Column(nullable = false) - private String status; + //Douane + @Column(name = "customs_import_export") + private String customsImportExport; - private BigDecimal estimatedAmount; + @Column(name = "eur1") + private Boolean eur1; - private LocalDateTime createdAt = LocalDateTime.now(); + @Column(name = "packaging_type") + private String packagingType; + + @OneToMany(mappedBy = "quote", cascade = CascadeType.ALL, fetch = FetchType.LAZY) + private List details = new ArrayList<>(); + + @Column(name = "dangerous_goods") + private Boolean dangerousGoods; + + @Column(name = "tailgate") + private Boolean tailgate; + + @Column(name = "straps") + private Boolean straps; + + @Column(name = "thermal_cover") + private Boolean thermalCover; + + @Column(name = "regulated_products") + private Boolean regulatedProducts; + + @Column(name = "appointment_required") + private Boolean appointmentRequired; + + @Column(name = "t1") + private Boolean t1; + + @Column(name = "customs_stop") + private Boolean customsStop; + + @Column(name = "export_assistance") + private Boolean exportAssistance; + + @Column(name = "insurance") + private Boolean insurance; + + @Column(name = "operation_type") + private String operationType; + + @Column(name = "incoterm") + private String incoterm; + + @Column(name = "departure_postal_code") + private String departurePostalCode; + + @Column(name = "departure_city") + private String departureCity; + + @Column(name = "pickup_date") + private LocalDate pickupDate; + + @Column(name = "arrival_postal_code") + private String arrivalPostalCode; + + @Column(name = "arrival_city") + private String arrivalCity; + + @Column(name = "delivery_date") + private LocalDate deliveryDate; + + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; @ManyToOne private UserEntity user; @@ -29,5 +114,16 @@ public class QuoteEntity extends BaseEntity { @OneToOne(mappedBy = "quote", cascade = CascadeType.ALL) private ExportFolderEntity exportFile; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Role.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Role.java index d3c97ed..09ba14b 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Role.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/Role.java @@ -30,7 +30,21 @@ public enum Role { MANAGER_READ, MANAGER_UPDATE, MANAGER_DELETE, - MANAGER_CREATE)); + MANAGER_CREATE)), + ADMIN_PLATFORM(Set.of( + ADMIN_PLATFORM_READ, + ADMIN_PLATFORM_UPDATE, + ADMIN_PLATFORM_DELETE, + ADMIN_PLATFORM_CREATE, + ADMIN_READ, + ADMIN_UPDATE, + ADMIN_DELETE, + ADMIN_CREATE, + MANAGER_READ, + MANAGER_UPDATE, + MANAGER_DELETE, + MANAGER_CREATE) + ); private final Set permissions; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ShipmentTrackingEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ShipmentTrackingEntity.java index 7a0a706..7ea660d 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ShipmentTrackingEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/ShipmentTrackingEntity.java @@ -1,4 +1,79 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "shipment_tracking") public class ShipmentTrackingEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "container_number") + private String containerNumber; + + @Column(name = "imo_number") + private String imoNumber; + + @Column(name = "mmsi_number") + private String mmsiNumber; + + @Column(name = "vessel_name") + private String vesselName; + + @Column(name = "current_latitude") + private Double currentLatitude; + + @Column(name = "current_longitude") + private Double currentLongitude; + + @Column(name = "speed_knots") + private Double speedKnots; + + @Column(name = "status") + private String status; // e.g. "Underway", "Moored", etc. + + @Column(name = "eta") + private LocalDateTime eta; + + @Column(name = "last_reported") + private LocalDateTime lastReported; + + // Relation avec ExportFolder + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "export_folder_id", nullable = false) + private ExportFolderEntity exportFolder; + + @Column(name = "created_at", nullable = false, updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); + lastReported = LocalDateTime.now(); + } + + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); + } + } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/TokenEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/TokenEntity.java index 34869f7..c161d1d 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/TokenEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/TokenEntity.java @@ -1,21 +1,16 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import lombok.experimental.Accessors; @Entity +@Table(name = "Token", uniqueConstraints = @UniqueConstraint(columnNames = "token")) @Getter @Setter @AllArgsConstructor @NoArgsConstructor @Accessors(chain = true) -@Table(name = "token", uniqueConstraints = { - @UniqueConstraint(columnNames = {"token"}) -}) public class TokenEntity extends BaseEntity { public enum Type { @@ -29,7 +24,6 @@ public class TokenEntity extends BaseEntity { private Type tokenType = Type.BEARER; private boolean revoked; - private boolean expired; @ManyToOne(fetch = FetchType.LAZY) diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/UserEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/UserEntity.java index 0ecfde4..e6c3bb1 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/UserEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/UserEntity.java @@ -1,18 +1,27 @@ package com.dh7789dev.xpeditis.entity; import jakarta.persistence.*; +import lombok.AccessLevel; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; import org.hibernate.annotations.NaturalId; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; +import java.time.LocalDateTime; import java.util.Collection; import java.util.List; @Entity @Getter @Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "Users") public class UserEntity extends BaseEntity implements UserDetails { @NaturalId @@ -31,6 +40,9 @@ public class UserEntity extends BaseEntity implements UserDetails { @Column(nullable = false) private String password; + @Column(name = "phone", length = 20) + private String phone; + @Enumerated(EnumType.STRING) @Column(nullable = false) private Role role; @@ -50,14 +62,21 @@ public class UserEntity extends BaseEntity implements UserDetails { @OneToMany(mappedBy = "user") private List tokens; - @Override - public String getPassword() { - return password; + @Column(name = "created_at", updatable = false) + private LocalDateTime createdAt; + + @Column(name = "modified_at") + private LocalDateTime modifiedAt; + + @PrePersist + public void onCreate() { + createdAt = LocalDateTime.now(); + modifiedAt = LocalDateTime.now(); } - @Override - public String getUsername() { - return username; + @PreUpdate + public void onUpdate() { + modifiedAt = LocalDateTime.now(); } @Override @@ -87,8 +106,9 @@ public class UserEntity extends BaseEntity implements UserDetails { @Override public String toString() { - return "UserEntity(" + super.toString() + String.format("username=%s, firstName=%s, lastName=%s, email=%s, role=%s)", - username, firstName, lastName, email, role.name()); + return "UserEntity(" + super.toString() + String.format( + "username=%s, firstName=%s, lastName=%s, email=%s, role=%s)", + username, firstName, lastName, email, role.name() + ); } } - diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/VesselScheduleEntity.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/VesselScheduleEntity.java index a01c7b5..489572b 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/VesselScheduleEntity.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/entity/VesselScheduleEntity.java @@ -1,4 +1,58 @@ package com.dh7789dev.xpeditis.entity; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.FieldDefaults; +import lombok.experimental.FieldNameConstants; + +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@FieldNameConstants +@FieldDefaults( level = AccessLevel.PRIVATE) +@Table(name = "vessel_schedule") public class VesselScheduleEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "imo_number") // Numéro unique du navire + private String imoNumber; + + @Column(name = "mmsi_number") // Maritime Mobile Service Identity + private String mmsiNumber; + + @Column(name = "vessel_name") + private String vesselName; + + @Column(name = "voyage_number") + private String voyageNumber; + + @Column(name = "departure_port") + private String departurePort; + + @Column(name = "arrival_port") + private String arrivalPort; + + @Column(name = "departure_date") + private LocalDateTime departureDate; + + @Column(name = "arrival_date") + private LocalDateTime arrivalDate; + + @Column(name = "last_updated") + private LocalDateTime lastUpdated; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "export_folder_id", nullable = false) + private ExportFolderEntity exportFolder; + + } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/AddressMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/AddressMapper.java new file mode 100644 index 0000000..15421a6 --- /dev/null +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/AddressMapper.java @@ -0,0 +1,18 @@ +package com.dh7789dev.xpeditis.mapper; + + +import com.dh7789dev.xpeditis.dto.app.Address; +import com.dh7789dev.xpeditis.entity.AddressEntity; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, uses = { CompanyMapper.class }) +public interface AddressMapper { + + AddressMapper INSTANCE = Mappers.getMapper(AddressMapper.class); + + AddressEntity addressToAddressEntity(Address address); + + Address addressEntityToAddress(AddressEntity addressEntity); +} \ No newline at end of file diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/CompanyMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/CompanyMapper.java index de07006..05a2dd4 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/CompanyMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/CompanyMapper.java @@ -1,7 +1,7 @@ package com.dh7789dev.xpeditis.mapper; -import com.dh7789dev.xpeditis.dto.Company; +import com.dh7789dev.xpeditis.dto.app.Company; import com.dh7789dev.xpeditis.entity.CompanyEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DimensionMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DimensionMapper.java index 179ae46..233ce8b 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DimensionMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DimensionMapper.java @@ -1,4 +1,17 @@ package com.dh7789dev.xpeditis.mapper; -public class DimensionMapper { + +import com.dh7789dev.xpeditis.dto.app.Dimension; +import com.dh7789dev.xpeditis.entity.DimensionEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring") +public interface DimensionMapper { + DimensionMapper INSTANCE = Mappers.getMapper(DimensionMapper.class); + + DimensionEntity dimensionToDimensionEntity(Dimension dimension); + + Dimension dimensionEntityToDimension(DimensionEntity dimensionEntity); + } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DocumentMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DocumentMapper.java index 14b3ab3..f445fc9 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DocumentMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/DocumentMapper.java @@ -1,4 +1,16 @@ package com.dh7789dev.xpeditis.mapper; +import com.dh7789dev.xpeditis.dto.app.Document; +import com.dh7789dev.xpeditis.entity.DocumentEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring") public interface DocumentMapper { + DocumentMapper INSTANCE = Mappers.getMapper(DocumentMapper.class); + + DocumentEntity documentToDocumentEntity(Document document); + Document documentEntityToDocument(DocumentEntity documentEntity); + } + diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ExportFolderMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ExportFolderMapper.java index f03271c..b8751fa 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ExportFolderMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ExportFolderMapper.java @@ -1,13 +1,13 @@ package com.dh7789dev.xpeditis.mapper; -import com.dh7789dev.xpeditis.dto.ExportFolder; +import com.dh7789dev.xpeditis.dto.app.ExportFolder; import com.dh7789dev.xpeditis.entity.ExportFolderEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingConstants; import org.mapstruct.factory.Mappers; -@Mapper(componentModel = MappingConstants.ComponentModel.SPRING) +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, uses = { DocumentMapper.class, CompanyMapper.class }) public interface ExportFolderMapper { ExportFolderMapper INSTANCE = Mappers.getMapper(ExportFolderMapper.class); diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/LicenseMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/LicenseMapper.java index 06efe65..5f63f10 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/LicenseMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/LicenseMapper.java @@ -1,7 +1,7 @@ package com.dh7789dev.xpeditis.mapper; -import com.dh7789dev.xpeditis.dto.License; +import com.dh7789dev.xpeditis.dto.app.License; import com.dh7789dev.xpeditis.entity.LicenseEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/NotificationMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/NotificationMapper.java index 4e79ec6..0e0e7c3 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/NotificationMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/NotificationMapper.java @@ -1,4 +1,18 @@ package com.dh7789dev.xpeditis.mapper; + +import com.dh7789dev.xpeditis.dto.app.Notification; +import com.dh7789dev.xpeditis.entity.NotificationEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + + +@Mapper(componentModel = "spring" , uses = { ExportFolderMapper.class }) public interface NotificationMapper { -} + NotificationMapper INSTANCE = Mappers.getMapper(NotificationMapper.class); + + NotificationEntity notificationToNotificationEntity(Notification notification); + + Notification notificationEntityToNotification(NotificationEntity notificationEntity); + +} \ No newline at end of file diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteDetailMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteDetailMapper.java index 17daab6..77d991b 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteDetailMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteDetailMapper.java @@ -1,4 +1,19 @@ package com.dh7789dev.xpeditis.mapper; +import com.dh7789dev.xpeditis.dto.app.QuoteDetail; +import com.dh7789dev.xpeditis.entity.QuoteDetailEntity; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring", uses = { DimensionMapper.class }) public interface QuoteDetailMapper { + QuoteDetailMapper INSTANCE = Mappers.getMapper(QuoteDetailMapper.class); + + @Mapping(source = "quoteId", target = "quote.id") + QuoteDetailEntity quoteDetailsToQuoteDetailsEntity(QuoteDetail quoteDetail); + + @Mapping(source = "quote.id", target = "quoteId") + QuoteDetail quoteDetailsEntityToQuoteDetails(QuoteDetailEntity quoteDetailEntity); } + diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteMapper.java index d6d64b8..48903ea 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/QuoteMapper.java @@ -1,13 +1,13 @@ package com.dh7789dev.xpeditis.mapper; -import com.dh7789dev.xpeditis.dto.Quote; +import com.dh7789dev.xpeditis.dto.app.Quote; import com.dh7789dev.xpeditis.entity.QuoteEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingConstants; import org.mapstruct.factory.Mappers; -@Mapper(componentModel = MappingConstants.ComponentModel.SPRING) +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, uses = { QuoteDetailMapper.class }) public interface QuoteMapper { QuoteMapper INSTANCE = Mappers.getMapper(QuoteMapper.class); diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ShipmentTrackingMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ShipmentTrackingMapper.java index 29764ae..c80fb1f 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ShipmentTrackingMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/ShipmentTrackingMapper.java @@ -1,4 +1,17 @@ package com.dh7789dev.xpeditis.mapper; + +import com.dh7789dev.xpeditis.dto.app.ShipmentTracking; +import com.dh7789dev.xpeditis.entity.ShipmentTrackingEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring", uses = { ExportFolderMapper.class }) public interface ShipmentTrackingMapper { -} + + ShipmentTrackingMapper INSTANCE = Mappers.getMapper(ShipmentTrackingMapper.class); + + ShipmentTrackingEntity shipmentTrackingToShipmentTrackingEntity(ShipmentTracking shipmentTracking); + + ShipmentTracking shipmentTrackingEntityToShipmentTracking(ShipmentTrackingEntity shipmentTrackingEntity); +} \ No newline at end of file diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/UserMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/UserMapper.java index c32558c..b1b8e29 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/UserMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/UserMapper.java @@ -1,6 +1,6 @@ package com.dh7789dev.xpeditis.mapper; -import com.dh7789dev.xpeditis.dto.UserAccount; +import com.dh7789dev.xpeditis.dto.app.UserAccount; import com.dh7789dev.xpeditis.entity.UserEntity; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/VesselScheduleMapper.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/VesselScheduleMapper.java index 30e9c80..9716d51 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/VesselScheduleMapper.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/mapper/VesselScheduleMapper.java @@ -1,4 +1,17 @@ package com.dh7789dev.xpeditis.mapper; + +import com.dh7789dev.xpeditis.dto.app.VesselSchedule; +import com.dh7789dev.xpeditis.entity.VesselScheduleEntity; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper(componentModel = "spring", uses = { ExportFolderMapper.class }) public interface VesselScheduleMapper { + + VesselScheduleMapper INSTANCE = Mappers.getMapper(VesselScheduleMapper.class); + + VesselScheduleEntity vesselScheduleToVesselScheduleEntity(VesselSchedule vesselSchedule); + + VesselSchedule vesselScheduleEntityToVesselSchedule(VesselScheduleEntity vesselScheduleEntity); } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AddressJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AddressJpaRepository.java index 7449485..61e5046 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AddressJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AddressJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class AddressJpaRepository { +import com.dh7789dev.xpeditis.AddressRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class AddressJpaRepository implements AddressRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AuthenticationJwtRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AuthenticationJwtRepository.java index 585eb23..4ef586c 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AuthenticationJwtRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/AuthenticationJwtRepository.java @@ -1,12 +1,13 @@ package com.dh7789dev.xpeditis.repository; import com.dh7789dev.xpeditis.AuthenticationRepository; +import com.dh7789dev.xpeditis.dao.CompanyDao; import com.dh7789dev.xpeditis.dao.TokenDao; import com.dh7789dev.xpeditis.dao.UserDao; -import com.dh7789dev.xpeditis.dto.AuthenticationRequest; -import com.dh7789dev.xpeditis.dto.AuthenticationResponse; -import com.dh7789dev.xpeditis.entity.TokenEntity; -import com.dh7789dev.xpeditis.entity.UserEntity; +import com.dh7789dev.xpeditis.dto.request.AuthenticationRequest; +import com.dh7789dev.xpeditis.dto.response.AuthenticationResponse; +import com.dh7789dev.xpeditis.dto.request.RegisterRequest; +import com.dh7789dev.xpeditis.entity.*; import com.dh7789dev.xpeditis.util.JwtUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -14,6 +15,7 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @Slf4j @@ -25,6 +27,8 @@ public class AuthenticationJwtRepository implements AuthenticationRepository { private final UserDao userDao; private final TokenDao tokenDao; private final JwtUtil jwtUtil; + private final PasswordEncoder passwordEncoder; + private final CompanyDao companyDao; @Override public AuthenticationResponse authenticate(AuthenticationRequest request) { @@ -53,6 +57,32 @@ public class AuthenticationJwtRepository implements AuthenticationRepository { .setExpiresAt(jwtUtil.extractExpiration(jwtToken)); } + @Override + public AuthenticationResponse register(RegisterRequest request) { + if (userDao.existsByUsername(request.getUsername())) { + return new AuthenticationResponse().setError("Cette Utilisateur existe deja"); + } + UserEntity userEntity = new UserEntity(); + userEntity.setFirstName(request.getFirstName()); + userEntity.setLastName(request.getLastName()); + userEntity.setPassword(passwordEncoder.encode(request.getPassword())); + userEntity.setEmail(request.getEmail()); + userEntity.setUsername(request.getUsername()); + userEntity.setEnabled(true); + if(request.getCompany_uuid().isEmpty()){ + userEntity.setRole(Role.ADMIN); + CompanyEntity companyEntity = new CompanyEntity(); + companyEntity.setName(request.getCompany_name()); + companyDao.save(companyEntity); + } else { + userEntity.setRole(Role.ADMIN); + } + userDao.save(userEntity); + AuthenticationRequest authenticationRequest = new AuthenticationRequest(request.getUsername(), request.getPassword()); + return authenticate(authenticationRequest); + } + + private void saveUserToken(UserEntity user, String jwtToken) { var tokenEntity = new TokenEntity() .setUser(user) diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/CompanyJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/CompanyJpaRepository.java index 6889884..664d5bb 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/CompanyJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/CompanyJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class CompanyJpaRepository { +import com.dh7789dev.xpeditis.CompanyRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class CompanyJpaRepository implements CompanyRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DimensionJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DimensionJpaRepository.java index bd6f4f8..2657ec8 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DimensionJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DimensionJpaRepository.java @@ -1,4 +1,11 @@ package com.dh7789dev.xpeditis.repository; -public class DimensionJpaRepository { + +import com.dh7789dev.xpeditis.DimensionRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class DimensionJpaRepository implements DimensionRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DocumentJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DocumentJpaRepository.java index e4cc7e7..0a2a7bc 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DocumentJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/DocumentJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class DocumentJpaRepository { +import com.dh7789dev.xpeditis.DocumentRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class DocumentJpaRepository implements DocumentRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ExportFolderJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ExportFolderJpaRepository.java index 8343850..78d6eef 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ExportFolderJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ExportFolderJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class ExportFolderJpaRepository { +import com.dh7789dev.xpeditis.ExportFolderRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class ExportFolderJpaRepository implements ExportFolderRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/LicenseJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/LicenseJpaRepository.java index ffed860..890ac30 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/LicenseJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/LicenseJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class LicenseJpaRepository { +import com.dh7789dev.xpeditis.LicenseRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class LicenseJpaRepository implements LicenseRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/NotificationJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/NotificationJpaRepository.java index e558144..d012b33 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/NotificationJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/NotificationJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class NotificationJpaRepository { +import com.dh7789dev.xpeditis.NotificationRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class NotificationJpaRepository implements NotificationRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteDetailsJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteDetailsJpaRepository.java index d11360b..e8b36cf 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteDetailsJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteDetailsJpaRepository.java @@ -1,4 +1,11 @@ package com.dh7789dev.xpeditis.repository; -public class QuoteDetailsJpaRepository { + +import com.dh7789dev.xpeditis.QuoteDetailsRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class QuoteDetailsJpaRepository implements QuoteDetailsRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteJpaRepository.java index b7fdc55..0dde1c9 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/QuoteJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class QuoteJpaRepository { +import com.dh7789dev.xpeditis.QuoteRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class QuoteJpaRepository implements QuoteRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ShipmentTrackingJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ShipmentTrackingJpaRepository.java index 1635183..90c3645 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ShipmentTrackingJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/ShipmentTrackingJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class ShipmentTrackingJpaRepository { +import com.dh7789dev.xpeditis.ShipmentTrackingRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class ShipmentTrackingJpaRepository implements ShipmentTrackingRepository { } diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/UserJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/UserJpaRepository.java index 5140f25..97fc413 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/UserJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/UserJpaRepository.java @@ -2,7 +2,7 @@ package com.dh7789dev.xpeditis.repository; import com.dh7789dev.xpeditis.UserRepository; import com.dh7789dev.xpeditis.dao.UserDao; -import com.dh7789dev.xpeditis.dto.ChangePasswordRequest; +import com.dh7789dev.xpeditis.dto.request.ChangePasswordRequest; import com.dh7789dev.xpeditis.entity.UserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; diff --git a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/VesselScheduleJpaRepository.java b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/VesselScheduleJpaRepository.java index ae1a4f0..4e3e622 100644 --- a/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/VesselScheduleJpaRepository.java +++ b/infrastructure/src/main/java/com/dh7789dev/xpeditis/repository/VesselScheduleJpaRepository.java @@ -1,4 +1,10 @@ package com.dh7789dev.xpeditis.repository; -public class VesselScheduleJpaRepository { +import com.dh7789dev.xpeditis.VesselScheduleRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class VesselScheduleJpaRepository implements VesselScheduleRepository { }