diff --git a/pom.xml b/pom.xml index 94e4f62..531ca08 100644 --- a/pom.xml +++ b/pom.xml @@ -65,6 +65,10 @@ org.springframework.boot spring-boot-starter-oauth2-client + + org.springframework.boot + spring-boot-starter-oauth2-resource-server + org.springframework.boot spring-boot-starter-validation @@ -127,6 +131,24 @@ test + + io.jsonwebtoken + jjwt-api + 0.12.5 + + + io.jsonwebtoken + jjwt-impl + 0.12.5 + runtime + + + io.jsonwebtoken + jjwt-jackson + 0.12.5 + runtime + + diff --git a/src/frontend/src/components/layout/report/SelectForReport.vue b/src/frontend/src/components/layout/report/SelectForReport.vue index fffe190..39360d6 100644 --- a/src/frontend/src/components/layout/report/SelectForReport.vue +++ b/src/frontend/src/components/layout/report/SelectForReport.vue @@ -55,7 +55,6 @@ export default { } }, created() { - //todo reset the store instead. this.reportSearchStore.reset(); }, computed: { diff --git a/src/main/java/de/avatic/lcc/calculationmodel/SectionInfo.java b/src/main/java/de/avatic/lcc/calculationmodel/SectionInfo.java deleted file mode 100644 index 945750c..0000000 --- a/src/main/java/de/avatic/lcc/calculationmodel/SectionInfo.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.avatic.lcc.calculationmodel; - -import de.avatic.lcc.model.calculations.CalculationJobRouteSection; -import de.avatic.lcc.model.premises.route.RouteSection; - -public record SectionInfo(RouteSection section, CalculationJobRouteSection result, ContainerCalculationResult containerResult) { -} diff --git a/src/main/java/de/avatic/lcc/config/DevUserEmulationFilter.java b/src/main/java/de/avatic/lcc/config/DevUserEmulationFilter.java index 690d2cf..97f7771 100644 --- a/src/main/java/de/avatic/lcc/config/DevUserEmulationFilter.java +++ b/src/main/java/de/avatic/lcc/config/DevUserEmulationFilter.java @@ -1,7 +1,7 @@ package de.avatic.lcc.config; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.User; import de.avatic.lcc.repositories.users.UserRepository; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; diff --git a/src/main/java/de/avatic/lcc/config/LccOidcUser.java b/src/main/java/de/avatic/lcc/config/LccOidcUser.java index 8d820f6..d5918e9 100644 --- a/src/main/java/de/avatic/lcc/config/LccOidcUser.java +++ b/src/main/java/de/avatic/lcc/config/LccOidcUser.java @@ -1,7 +1,7 @@ package de.avatic.lcc.config; -import de.avatic.lcc.model.users.Group; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.Group; +import de.avatic.lcc.model.db.users.User; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.oauth2.core.oidc.OidcIdToken; import org.springframework.security.oauth2.core.oidc.OidcUserInfo; diff --git a/src/main/java/de/avatic/lcc/config/SecurityConfig.java b/src/main/java/de/avatic/lcc/config/SecurityConfig.java index d52ff5f..5f101c1 100644 --- a/src/main/java/de/avatic/lcc/config/SecurityConfig.java +++ b/src/main/java/de/avatic/lcc/config/SecurityConfig.java @@ -1,7 +1,8 @@ package de.avatic.lcc.config; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.User; import de.avatic.lcc.repositories.users.GroupRepository; +import de.avatic.lcc.repositories.users.JwtTokenService; import de.avatic.lcc.repositories.users.UserRepository; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; @@ -11,20 +12,28 @@ import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; +import org.springframework.http.HttpStatus; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest; import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService; import org.springframework.security.oauth2.client.userinfo.OAuth2UserService; import org.springframework.security.oauth2.core.oidc.user.OidcUser; +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; +import org.springframework.security.oauth2.server.resource.authentication.JwtGrantedAuthoritiesConverter; +import org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter; import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.HttpStatusEntryPoint; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; import org.springframework.security.web.csrf.CsrfToken; import org.springframework.security.web.csrf.CsrfTokenRequestAttributeHandler; import org.springframework.security.web.csrf.CsrfTokenRequestHandler; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.util.StringUtils; import org.springframework.web.filter.OncePerRequestFilter; @@ -39,10 +48,11 @@ import java.util.function.Supplier; public class SecurityConfig { @Bean - @Profile("!dev & !test & !dev_id") // Only active when NOT in dev profile - public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + @Profile("!dev & !test") // Only active when NOT in dev profile + public SecurityFilterChain securityFilterChain(HttpSecurity http, JwtTokenService jwtTokenService) throws Exception { http .authorizeHttpRequests(auth -> auth + .requestMatchers("/oauth2/token").permitAll() .requestMatchers("/api/**").authenticated() .requestMatchers("/api/dev/**").denyAll() .anyRequest().authenticated() @@ -51,15 +61,47 @@ public class SecurityConfig { .defaultSuccessUrl("/", true) ) + .oauth2ResourceServer(oauth2 -> oauth2 + .jwt(jwt -> jwt + .jwtAuthenticationConverter(jwtAuthenticationConverter()) + ) + ) + .exceptionHandling(ex -> ex + .defaultAuthenticationEntryPointFor( + new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED), + new AntPathRequestMatcher("/api/**") + ) + ) .csrf(csrf -> csrf .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .csrfTokenRequestHandler(new LccCsrfTokenRequestHandler()) ) - .addFilterAfter(new CsrfCookieFilter(), BasicAuthenticationFilter.class); + .addFilterAfter(new CsrfCookieFilter(), BasicAuthenticationFilter.class) + .addFilterBefore( + new SelfIssuedJwtFilter(jwtTokenService), + BearerTokenAuthenticationFilter.class + ); return http.build(); } + @Bean + public JwtAuthenticationConverter jwtAuthenticationConverter() { + // Für Entra ID Tokens + JwtGrantedAuthoritiesConverter converter = new JwtGrantedAuthoritiesConverter(); + converter.setAuthoritiesClaimName("scp"); + converter.setAuthorityPrefix("SCOPE_"); + + JwtAuthenticationConverter jwtConverter = new JwtAuthenticationConverter(); + jwtConverter.setJwtGrantedAuthoritiesConverter(converter); + return jwtConverter; + } + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + @Bean @Profile("dev | test") public SecurityFilterChain devSecurityFilterChain(HttpSecurity http, UserRepository userRepository) throws Exception { diff --git a/src/main/java/de/avatic/lcc/config/SelfIssuedJwtFilter.java b/src/main/java/de/avatic/lcc/config/SelfIssuedJwtFilter.java new file mode 100644 index 0000000..79e8385 --- /dev/null +++ b/src/main/java/de/avatic/lcc/config/SelfIssuedJwtFilter.java @@ -0,0 +1,83 @@ +package de.avatic.lcc.config; +import de.avatic.lcc.repositories.users.JwtTokenService; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.jetbrains.annotations.NotNull; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.filter.OncePerRequestFilter; +import io.jsonwebtoken.Claims; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class SelfIssuedJwtFilter extends OncePerRequestFilter { + + private final JwtTokenService jwtTokenService; + + public SelfIssuedJwtFilter(JwtTokenService jwtTokenService) { + this.jwtTokenService = jwtTokenService; + } + + @Override + protected void doFilterInternal(@NotNull HttpServletRequest request, + @NotNull HttpServletResponse response, + @NotNull FilterChain filterChain) + throws ServletException, IOException { + + String token = extractToken(request); + + if (token != null && isSelfIssuedToken(token)) { + try { + Claims claims = jwtTokenService.validateToken(token); + + List authorities = new ArrayList<>(); + + @SuppressWarnings("unchecked") + List groups = claims.get("groups", List.class); + if (groups != null) { + groups.forEach(role -> + authorities.add(new SimpleGrantedAuthority("ROLE_" + role)) + ); + } + + UsernamePasswordAuthenticationToken authentication = + new UsernamePasswordAuthenticationToken( + claims.getSubject(), + null, + authorities + ); + + SecurityContextHolder.getContext().setAuthentication(authentication); + + } catch (Exception e) { + logger.debug("Self-issued token validation failed", e); + } + } + + filterChain.doFilter(request, response); + } + + private String extractToken(HttpServletRequest request) { + String header = request.getHeader("Authorization"); + if (header != null && header.startsWith("Bearer ")) { + return header.substring(7); + } + return null; + } + + private boolean isSelfIssuedToken(String token) { + try { + Claims claims = jwtTokenService.validateToken(token); + String tokenType = claims.get("token_type", String.class); + return "ext_app".equals(tokenType); + } catch (Exception e) { + return false; + } + } +} \ No newline at end of file diff --git a/src/main/java/de/avatic/lcc/controller/configuration/MaterialController.java b/src/main/java/de/avatic/lcc/controller/configuration/MaterialController.java index aca2970..5bc9671 100644 --- a/src/main/java/de/avatic/lcc/controller/configuration/MaterialController.java +++ b/src/main/java/de/avatic/lcc/controller/configuration/MaterialController.java @@ -17,7 +17,6 @@ import java.util.Optional; @RestController @RequestMapping("/api/materials") @Validated -@PreAuthorize("hasRole('SUPER')") public class MaterialController { diff --git a/src/main/java/de/avatic/lcc/controller/configuration/NodeController.java b/src/main/java/de/avatic/lcc/controller/configuration/NodeController.java index be0dd8b..2ad6ca9 100644 --- a/src/main/java/de/avatic/lcc/controller/configuration/NodeController.java +++ b/src/main/java/de/avatic/lcc/controller/configuration/NodeController.java @@ -5,7 +5,6 @@ import de.avatic.lcc.dto.configuration.nodes.view.NodeDetailDTO; import de.avatic.lcc.dto.configuration.nodes.update.NodeUpdateDTO; import de.avatic.lcc.dto.generic.NodeType; import de.avatic.lcc.dto.configuration.nodes.userNodes.AddUserNodeDTO; -import de.avatic.lcc.model.nodes.Location; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import de.avatic.lcc.service.api.GeoApiService; import de.avatic.lcc.service.access.NodeService; diff --git a/src/main/java/de/avatic/lcc/controller/configuration/PropertyController.java b/src/main/java/de/avatic/lcc/controller/configuration/PropertyController.java index cd1f113..742fc4b 100644 --- a/src/main/java/de/avatic/lcc/controller/configuration/PropertyController.java +++ b/src/main/java/de/avatic/lcc/controller/configuration/PropertyController.java @@ -3,12 +3,11 @@ package de.avatic.lcc.controller.configuration; import de.avatic.lcc.dto.generic.PropertyDTO; import de.avatic.lcc.dto.generic.ValidityPeriodDTO; import de.avatic.lcc.dto.configuration.properties.SetPropertyDTO; -import de.avatic.lcc.model.country.IsoCode; +import de.avatic.lcc.model.db.country.IsoCode; import de.avatic.lcc.service.access.CountryService; import de.avatic.lcc.service.access.PropertyService; import de.avatic.lcc.service.configuration.PropertyApprovalService; import de.avatic.lcc.util.exception.badrequest.NotFoundException; -import jakarta.annotation.security.RolesAllowed; import jakarta.validation.constraints.Min; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; diff --git a/src/main/java/de/avatic/lcc/controller/token/TokenController.java b/src/main/java/de/avatic/lcc/controller/token/TokenController.java new file mode 100644 index 0000000..8255fc3 --- /dev/null +++ b/src/main/java/de/avatic/lcc/controller/token/TokenController.java @@ -0,0 +1,60 @@ +package de.avatic.lcc.controller.token; + +import de.avatic.lcc.dto.users.AppDTO; +import de.avatic.lcc.model.db.users.App; +import de.avatic.lcc.model.db.users.Group; +import de.avatic.lcc.repositories.users.JwtTokenService; +import de.avatic.lcc.service.apps.AppsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +@RequestMapping("/oauth2/token") +public class TokenController { + + private final JwtTokenService jwtTokenService; + + private final AppsService appService; + + public TokenController(JwtTokenService jwtTokenService, AppsService appService) { + this.jwtTokenService = jwtTokenService; + this.appService = appService; + } + + @PostMapping({"/", ""}) + public ResponseEntity issueToken( + @RequestParam("grant_type") String grantType, + @RequestParam("client_id") String clientId, + @RequestParam("client_secret") String clientSecret, + @RequestParam(value = "scope", required = false) String scope) { + + if (!"client_credentials".equals(grantType)) { + return ResponseEntity.badRequest() + .body(Map.of("error", "unsupported_grant_type")); + } + + App app = appService.validateApp(clientId, clientSecret); + if (app == null) { + return ResponseEntity.status(HttpStatus.UNAUTHORIZED) + .body(Map.of("error", "invalid_client")); + } + + String token = jwtTokenService.createApplicationToken( + clientId, + app.getGroups().stream().map(Group::getName).toList() + ); + + return ResponseEntity.ok(Map.of( + "access_token", token, + "token_type", "Bearer", + "expires_in", 3600 + )); + } +} \ No newline at end of file diff --git a/src/main/java/de/avatic/lcc/dto/calculation/CalculationStatus.java b/src/main/java/de/avatic/lcc/dto/calculation/CalculationStatus.java index aee7d15..efbd745 100644 --- a/src/main/java/de/avatic/lcc/dto/calculation/CalculationStatus.java +++ b/src/main/java/de/avatic/lcc/dto/calculation/CalculationStatus.java @@ -1,6 +1,6 @@ package de.avatic.lcc.dto.calculation; -import de.avatic.lcc.model.calculations.CalculationJobState; +import de.avatic.lcc.model.db.calculations.CalculationJobState; import java.util.Map; diff --git a/src/main/java/de/avatic/lcc/dto/calculation/PremiseDTO.java b/src/main/java/de/avatic/lcc/dto/calculation/PremiseDTO.java index 11033c6..ee0ff47 100644 --- a/src/main/java/de/avatic/lcc/dto/calculation/PremiseDTO.java +++ b/src/main/java/de/avatic/lcc/dto/calculation/PremiseDTO.java @@ -2,7 +2,7 @@ package de.avatic.lcc.dto.calculation; import de.avatic.lcc.dto.generic.MaterialDTO; import de.avatic.lcc.dto.generic.NodeDTO; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.User; public class PremiseDTO { diff --git a/src/main/java/de/avatic/lcc/dto/configuration/apps/AppsController.java b/src/main/java/de/avatic/lcc/dto/configuration/apps/AppsController.java new file mode 100644 index 0000000..73a3f13 --- /dev/null +++ b/src/main/java/de/avatic/lcc/dto/configuration/apps/AppsController.java @@ -0,0 +1,37 @@ +package de.avatic.lcc.dto.configuration.apps; + +import de.avatic.lcc.dto.users.AppDTO; +import de.avatic.lcc.repositories.users.AppRepository; +import de.avatic.lcc.service.apps.AppsService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/apps") +public class AppsController { + + + private final AppsService appsService; + + public AppsController(AppsService appsService) { + + this.appsService = appsService; + } + + @GetMapping({"", "/"}) + public ResponseEntity> listApps() { + return ResponseEntity.ok(appsService.listApps()); + } + + @PostMapping({"", "/"}) + public ResponseEntity updateApp(AppDTO dto) { + return ResponseEntity.ok(appsService.updateApp(dto)); + } + + +} diff --git a/src/main/java/de/avatic/lcc/dto/generic/DimensionDTO.java b/src/main/java/de/avatic/lcc/dto/generic/DimensionDTO.java index 96036a0..c303288 100644 --- a/src/main/java/de/avatic/lcc/dto/generic/DimensionDTO.java +++ b/src/main/java/de/avatic/lcc/dto/generic/DimensionDTO.java @@ -1,9 +1,9 @@ package de.avatic.lcc.dto.generic; import com.fasterxml.jackson.annotation.JsonProperty; -import de.avatic.lcc.model.packaging.PackagingType; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.packaging.PackagingType; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; public class DimensionDTO { diff --git a/src/main/java/de/avatic/lcc/dto/generic/PalletType.java b/src/main/java/de/avatic/lcc/dto/generic/PalletType.java index 743c4ff..03727b9 100644 --- a/src/main/java/de/avatic/lcc/dto/generic/PalletType.java +++ b/src/main/java/de/avatic/lcc/dto/generic/PalletType.java @@ -1,6 +1,6 @@ package de.avatic.lcc.dto.generic; -import de.avatic.lcc.model.packaging.PackagingDimension; +import de.avatic.lcc.model.db.packaging.PackagingDimension; public enum PalletType { INDUSTRIAL_PALLET(1200,1000), EURO_PALLET(1200,800); diff --git a/src/main/java/de/avatic/lcc/dto/generic/ValidityPeriodDTO.java b/src/main/java/de/avatic/lcc/dto/generic/ValidityPeriodDTO.java index 0dbf330..6b8a06a 100644 --- a/src/main/java/de/avatic/lcc/dto/generic/ValidityPeriodDTO.java +++ b/src/main/java/de/avatic/lcc/dto/generic/ValidityPeriodDTO.java @@ -1,7 +1,7 @@ package de.avatic.lcc.dto.generic; import com.fasterxml.jackson.annotation.JsonProperty; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import java.time.LocalDateTime; diff --git a/src/main/java/de/avatic/lcc/dto/report/ReportDestinationDTO.java b/src/main/java/de/avatic/lcc/dto/report/ReportDestinationDTO.java index 9b77096..905c304 100644 --- a/src/main/java/de/avatic/lcc/dto/report/ReportDestinationDTO.java +++ b/src/main/java/de/avatic/lcc/dto/report/ReportDestinationDTO.java @@ -3,8 +3,8 @@ package de.avatic.lcc.dto.report; import com.fasterxml.jackson.annotation.JsonProperty; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.NodeDTO; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/dto/users/AppDTO.java b/src/main/java/de/avatic/lcc/dto/users/AppDTO.java new file mode 100644 index 0000000..0bb87ca --- /dev/null +++ b/src/main/java/de/avatic/lcc/dto/users/AppDTO.java @@ -0,0 +1,64 @@ +package de.avatic.lcc.dto.users; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class AppDTO { + + @JsonProperty("id") + private Integer id; + + @JsonProperty("name") + private String name; + + @JsonProperty("client_id") + private String clientId; + + @JsonProperty("client_secret") + private String clientSecret; + + @JsonProperty("groups") + private List groups; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public void setClientSecret(String clientSecret) { + this.clientSecret = clientSecret; + } + + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + public void setId(Integer id) { + this.id = id; + } + + + public Integer getId() { + return id; + } +} diff --git a/src/main/java/de/avatic/lcc/model/azuremaps/geocoding/GeocodingResult.java b/src/main/java/de/avatic/lcc/model/azuremaps/geocoding/GeocodingResult.java index 7365e2f..de5900b 100644 --- a/src/main/java/de/avatic/lcc/model/azuremaps/geocoding/GeocodingResult.java +++ b/src/main/java/de/avatic/lcc/model/azuremaps/geocoding/GeocodingResult.java @@ -1,6 +1,6 @@ package de.avatic.lcc.model.azuremaps.geocoding; -import de.avatic.lcc.model.nodes.Location; +import de.avatic.lcc.model.db.nodes.Location; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/AirfreightResult.java b/src/main/java/de/avatic/lcc/model/calculation/AirfreightResult.java similarity index 96% rename from src/main/java/de/avatic/lcc/calculationmodel/AirfreightResult.java rename to src/main/java/de/avatic/lcc/model/calculation/AirfreightResult.java index 869fd62..cd45994 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/AirfreightResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/AirfreightResult.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/ChangeRiskFactorCalculationResult.java b/src/main/java/de/avatic/lcc/model/calculation/ChangeRiskFactorCalculationResult.java similarity index 96% rename from src/main/java/de/avatic/lcc/calculationmodel/ChangeRiskFactorCalculationResult.java rename to src/main/java/de/avatic/lcc/model/calculation/ChangeRiskFactorCalculationResult.java index b01a2de..d45af9b 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/ChangeRiskFactorCalculationResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/ChangeRiskFactorCalculationResult.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/ContainerCalculationResult.java b/src/main/java/de/avatic/lcc/model/calculation/ContainerCalculationResult.java similarity index 97% rename from src/main/java/de/avatic/lcc/calculationmodel/ContainerCalculationResult.java rename to src/main/java/de/avatic/lcc/model/calculation/ContainerCalculationResult.java index 49c08d3..c2e69ca 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/ContainerCalculationResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/ContainerCalculationResult.java @@ -1,9 +1,9 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; import de.avatic.lcc.dto.generic.ContainerType; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; /** * Represents the result of a container calculation process, including details diff --git a/src/main/java/de/avatic/lcc/calculationmodel/CustomResult.java b/src/main/java/de/avatic/lcc/model/calculation/CustomResult.java similarity index 99% rename from src/main/java/de/avatic/lcc/calculationmodel/CustomResult.java rename to src/main/java/de/avatic/lcc/model/calculation/CustomResult.java index 38734de..b22cc9b 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/CustomResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/CustomResult.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/DestinationInfo.java b/src/main/java/de/avatic/lcc/model/calculation/DestinationInfo.java similarity index 54% rename from src/main/java/de/avatic/lcc/calculationmodel/DestinationInfo.java rename to src/main/java/de/avatic/lcc/model/calculation/DestinationInfo.java index c6c1958..1742116 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/DestinationInfo.java +++ b/src/main/java/de/avatic/lcc/model/calculation/DestinationInfo.java @@ -1,7 +1,7 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; -import de.avatic.lcc.model.calculations.CalculationJobDestination; -import de.avatic.lcc.model.premises.route.Destination; +import de.avatic.lcc.model.db.calculations.CalculationJobDestination; +import de.avatic.lcc.model.db.premises.route.Destination; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/HandlingResult.java b/src/main/java/de/avatic/lcc/model/calculation/HandlingResult.java similarity index 97% rename from src/main/java/de/avatic/lcc/calculationmodel/HandlingResult.java rename to src/main/java/de/avatic/lcc/model/calculation/HandlingResult.java index e59fdc3..2b4d0eb 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/HandlingResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/HandlingResult.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; -import de.avatic.lcc.model.packaging.LoadCarrierType; +import de.avatic.lcc.model.db.packaging.LoadCarrierType; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/calculationmodel/InventoryCostResult.java b/src/main/java/de/avatic/lcc/model/calculation/InventoryCostResult.java similarity index 99% rename from src/main/java/de/avatic/lcc/calculationmodel/InventoryCostResult.java rename to src/main/java/de/avatic/lcc/model/calculation/InventoryCostResult.java index 71c6060..02bffd4 100644 --- a/src/main/java/de/avatic/lcc/calculationmodel/InventoryCostResult.java +++ b/src/main/java/de/avatic/lcc/model/calculation/InventoryCostResult.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.calculationmodel; +package de.avatic.lcc.model.calculation; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/model/calculation/SectionInfo.java b/src/main/java/de/avatic/lcc/model/calculation/SectionInfo.java new file mode 100644 index 0000000..0ffe2ba --- /dev/null +++ b/src/main/java/de/avatic/lcc/model/calculation/SectionInfo.java @@ -0,0 +1,7 @@ +package de.avatic.lcc.model.calculation; + +import de.avatic.lcc.model.db.calculations.CalculationJobRouteSection; +import de.avatic.lcc.model.db.premises.route.RouteSection; + +public record SectionInfo(RouteSection section, CalculationJobRouteSection result, ContainerCalculationResult containerResult) { +} diff --git a/src/main/java/de/avatic/lcc/model/ValidityTuple.java b/src/main/java/de/avatic/lcc/model/db/ValidityTuple.java similarity index 69% rename from src/main/java/de/avatic/lcc/model/ValidityTuple.java rename to src/main/java/de/avatic/lcc/model/db/ValidityTuple.java index 232226b..4c98522 100644 --- a/src/main/java/de/avatic/lcc/model/ValidityTuple.java +++ b/src/main/java/de/avatic/lcc/model/db/ValidityTuple.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model; +package de.avatic.lcc.model.db; public record ValidityTuple(Integer periodId, Integer propertySetId) { } diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJob.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJob.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJob.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJob.java index 2707a05..3ee3cbd 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJob.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJob.java @@ -1,8 +1,6 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; -import java.math.BigDecimal; import java.time.LocalDateTime; -import java.time.OffsetDateTime; public class CalculationJob { diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobDestination.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobDestination.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJobDestination.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobDestination.java index 7ad02c8..3ae2c2e 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobDestination.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobDestination.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; import de.avatic.lcc.dto.generic.ContainerType; diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobRouteSection.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobRouteSection.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJobRouteSection.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobRouteSection.java index 8fe7be5..a528c94 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobRouteSection.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobRouteSection.java @@ -1,4 +1,4 @@ - package de.avatic.lcc.model.calculations; + package de.avatic.lcc.model.db.calculations; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobState.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobState.java similarity index 66% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJobState.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobState.java index 17cb276..8b00fa5 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobState.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobState.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; public enum CalculationJobState { CREATED, SCHEDULED, VALID, INVALIDATED, EXCEPTION diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationRuleType.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationRuleType.java similarity index 62% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationRuleType.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationRuleType.java index 9dac908..a38846d 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationRuleType.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationRuleType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; public enum CalculationJobTransportationRuleType { CONTAINER, MATRIX diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationType.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationType.java similarity index 62% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationType.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationType.java index 6f0e47e..38c6ac8 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationJobTransportationType.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationJobTransportationType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; public enum CalculationJobTransportationType { TEU, FEU, HC, TRUCK diff --git a/src/main/java/de/avatic/lcc/model/calculations/CalculationResult.java b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationResult.java similarity index 92% rename from src/main/java/de/avatic/lcc/model/calculations/CalculationResult.java rename to src/main/java/de/avatic/lcc/model/db/calculations/CalculationResult.java index bcaf108..6deed53 100644 --- a/src/main/java/de/avatic/lcc/model/calculations/CalculationResult.java +++ b/src/main/java/de/avatic/lcc/model/db/calculations/CalculationResult.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.model.calculations; +package de.avatic.lcc.model.db.calculations; -import de.avatic.lcc.calculationmodel.DestinationInfo; +import de.avatic.lcc.model.calculation.DestinationInfo; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/model/country/Country.java b/src/main/java/de/avatic/lcc/model/db/country/Country.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/country/Country.java rename to src/main/java/de/avatic/lcc/model/db/country/Country.java index 40732d3..a8750d6 100644 --- a/src/main/java/de/avatic/lcc/model/country/Country.java +++ b/src/main/java/de/avatic/lcc/model/db/country/Country.java @@ -1,9 +1,8 @@ -package de.avatic.lcc.model.country; +package de.avatic.lcc.model.db.country; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; -import org.springframework.data.annotation.Id; public class Country { diff --git a/src/main/java/de/avatic/lcc/model/country/CountryListEntry.java b/src/main/java/de/avatic/lcc/model/db/country/CountryListEntry.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/country/CountryListEntry.java rename to src/main/java/de/avatic/lcc/model/db/country/CountryListEntry.java index d5cfe98..d96af66 100644 --- a/src/main/java/de/avatic/lcc/model/country/CountryListEntry.java +++ b/src/main/java/de/avatic/lcc/model/db/country/CountryListEntry.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.country; +package de.avatic.lcc.model.db.country; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/de/avatic/lcc/model/country/DetourIndex.java b/src/main/java/de/avatic/lcc/model/db/country/DetourIndex.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/country/DetourIndex.java rename to src/main/java/de/avatic/lcc/model/db/country/DetourIndex.java index bc039ad..aba224d 100644 --- a/src/main/java/de/avatic/lcc/model/country/DetourIndex.java +++ b/src/main/java/de/avatic/lcc/model/db/country/DetourIndex.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.country; +package de.avatic.lcc.model.db.country; /** * Enumeration providing detour indices for different countries. * The detour index represents the ratio between road distance and direct air distance. diff --git a/src/main/java/de/avatic/lcc/model/country/IsoCode.java b/src/main/java/de/avatic/lcc/model/db/country/IsoCode.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/country/IsoCode.java rename to src/main/java/de/avatic/lcc/model/db/country/IsoCode.java index 944e44e..af5b635 100644 --- a/src/main/java/de/avatic/lcc/model/country/IsoCode.java +++ b/src/main/java/de/avatic/lcc/model/db/country/IsoCode.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.country; +package de.avatic.lcc.model.db.country; /** * Represents ISO 3166-1 Alpha-2 country codes. diff --git a/src/main/java/de/avatic/lcc/model/country/RegionCode.java b/src/main/java/de/avatic/lcc/model/db/country/RegionCode.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/country/RegionCode.java rename to src/main/java/de/avatic/lcc/model/db/country/RegionCode.java index 0d5579f..cc0f1db 100644 --- a/src/main/java/de/avatic/lcc/model/country/RegionCode.java +++ b/src/main/java/de/avatic/lcc/model/db/country/RegionCode.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.country; +package de.avatic.lcc.model.db.country; /** * Repräsentiert die geografischen Regionen für Länderklassifizierungen. diff --git a/src/main/java/de/avatic/lcc/model/error/SysError.java b/src/main/java/de/avatic/lcc/model/db/error/SysError.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/error/SysError.java rename to src/main/java/de/avatic/lcc/model/db/error/SysError.java index f251565..91c8198 100644 --- a/src/main/java/de/avatic/lcc/model/error/SysError.java +++ b/src/main/java/de/avatic/lcc/model/db/error/SysError.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.error; +package de.avatic.lcc.model.db.error; import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/model/error/SysErrorTraceItem.java b/src/main/java/de/avatic/lcc/model/db/error/SysErrorTraceItem.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/error/SysErrorTraceItem.java rename to src/main/java/de/avatic/lcc/model/db/error/SysErrorTraceItem.java index 5d264eb..fb8c4bd 100644 --- a/src/main/java/de/avatic/lcc/model/error/SysErrorTraceItem.java +++ b/src/main/java/de/avatic/lcc/model/db/error/SysErrorTraceItem.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.error; +package de.avatic.lcc.model.db.error; /** * Represents a trace item in system error stack trace. diff --git a/src/main/java/de/avatic/lcc/model/error/SysErrorType.java b/src/main/java/de/avatic/lcc/model/db/error/SysErrorType.java similarity index 63% rename from src/main/java/de/avatic/lcc/model/error/SysErrorType.java rename to src/main/java/de/avatic/lcc/model/db/error/SysErrorType.java index c425e2a..47b5daf 100644 --- a/src/main/java/de/avatic/lcc/model/error/SysErrorType.java +++ b/src/main/java/de/avatic/lcc/model/db/error/SysErrorType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.error; +package de.avatic.lcc.model.db.error; public enum SysErrorType { BACKEND, FRONTEND, BULK, CALCULATION diff --git a/src/main/java/de/avatic/lcc/model/materials/Material.java b/src/main/java/de/avatic/lcc/model/db/materials/Material.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/materials/Material.java rename to src/main/java/de/avatic/lcc/model/db/materials/Material.java index 3e8c11c..b1a85b6 100644 --- a/src/main/java/de/avatic/lcc/model/materials/Material.java +++ b/src/main/java/de/avatic/lcc/model/db/materials/Material.java @@ -1,6 +1,4 @@ -package de.avatic.lcc.model.materials; - -import com.fasterxml.jackson.annotation.JsonProperty; +package de.avatic.lcc.model.db.materials; import java.util.Objects; diff --git a/src/main/java/de/avatic/lcc/model/materials/MaterialPackaging.java b/src/main/java/de/avatic/lcc/model/db/materials/MaterialPackaging.java similarity index 94% rename from src/main/java/de/avatic/lcc/model/materials/MaterialPackaging.java rename to src/main/java/de/avatic/lcc/model/db/materials/MaterialPackaging.java index 64856f8..2f0b86d 100644 --- a/src/main/java/de/avatic/lcc/model/materials/MaterialPackaging.java +++ b/src/main/java/de/avatic/lcc/model/db/materials/MaterialPackaging.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.materials; +package de.avatic.lcc.model.db.materials; import com.fasterxml.jackson.annotation.JsonProperty; import de.avatic.lcc.dto.generic.DimensionDTO; diff --git a/src/main/java/de/avatic/lcc/model/materials/MaterialSupplier.java b/src/main/java/de/avatic/lcc/model/db/materials/MaterialSupplier.java similarity index 90% rename from src/main/java/de/avatic/lcc/model/materials/MaterialSupplier.java rename to src/main/java/de/avatic/lcc/model/db/materials/MaterialSupplier.java index 9479ad3..6ba17b8 100644 --- a/src/main/java/de/avatic/lcc/model/materials/MaterialSupplier.java +++ b/src/main/java/de/avatic/lcc/model/db/materials/MaterialSupplier.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.model.materials; +package de.avatic.lcc.model.db.materials; -import de.avatic.lcc.model.country.CountryListEntry; +import de.avatic.lcc.model.db.country.CountryListEntry; import de.avatic.lcc.dto.generic.NodeType; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/model/nodes/Distance.java b/src/main/java/de/avatic/lcc/model/db/nodes/Distance.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/nodes/Distance.java rename to src/main/java/de/avatic/lcc/model/db/nodes/Distance.java index db77d7e..9f7a316 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/Distance.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/Distance.java @@ -1,11 +1,10 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; import jakarta.validation.constraints.*; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.time.OffsetDateTime; public class Distance { diff --git a/src/main/java/de/avatic/lcc/model/nodes/DistanceMatrixState.java b/src/main/java/de/avatic/lcc/model/db/nodes/DistanceMatrixState.java similarity index 58% rename from src/main/java/de/avatic/lcc/model/nodes/DistanceMatrixState.java rename to src/main/java/de/avatic/lcc/model/db/nodes/DistanceMatrixState.java index 943fe36..3be5f0d 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/DistanceMatrixState.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/DistanceMatrixState.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; public enum DistanceMatrixState { VALID, STALE diff --git a/src/main/java/de/avatic/lcc/model/nodes/Location.java b/src/main/java/de/avatic/lcc/model/db/nodes/Location.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/nodes/Location.java rename to src/main/java/de/avatic/lcc/model/db/nodes/Location.java index fdd4edb..59f4011 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/Location.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/Location.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; public class Location { private Double longitude; diff --git a/src/main/java/de/avatic/lcc/model/nodes/Node.java b/src/main/java/de/avatic/lcc/model/db/nodes/Node.java similarity index 99% rename from src/main/java/de/avatic/lcc/model/nodes/Node.java rename to src/main/java/de/avatic/lcc/model/db/nodes/Node.java index 2edcb3a..c04e8d8 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/Node.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/Node.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; import org.jetbrains.annotations.Debug.Renderer; import jakarta.validation.constraints.*; diff --git a/src/main/java/de/avatic/lcc/model/nodes/NodeListEntry.java b/src/main/java/de/avatic/lcc/model/db/nodes/NodeListEntry.java similarity index 94% rename from src/main/java/de/avatic/lcc/model/nodes/NodeListEntry.java rename to src/main/java/de/avatic/lcc/model/db/nodes/NodeListEntry.java index d351551..04167f8 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/NodeListEntry.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/NodeListEntry.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; -import de.avatic.lcc.model.country.CountryListEntry; +import de.avatic.lcc.model.db.country.CountryListEntry; public class NodeListEntry { diff --git a/src/main/java/de/avatic/lcc/model/nodes/OutboundCountryMapping.java b/src/main/java/de/avatic/lcc/model/db/nodes/OutboundCountryMapping.java similarity index 85% rename from src/main/java/de/avatic/lcc/model/nodes/OutboundCountryMapping.java rename to src/main/java/de/avatic/lcc/model/db/nodes/OutboundCountryMapping.java index 96d2e20..be90c00 100644 --- a/src/main/java/de/avatic/lcc/model/nodes/OutboundCountryMapping.java +++ b/src/main/java/de/avatic/lcc/model/db/nodes/OutboundCountryMapping.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.model.nodes; +package de.avatic.lcc.model.db.nodes; -import de.avatic.lcc.model.country.Country; +import de.avatic.lcc.model.db.country.Country; import jakarta.validation.constraints.NotNull; import org.springframework.data.annotation.Id; diff --git a/src/main/java/de/avatic/lcc/model/packaging/LoadCarrierType.java b/src/main/java/de/avatic/lcc/model/db/packaging/LoadCarrierType.java similarity index 92% rename from src/main/java/de/avatic/lcc/model/packaging/LoadCarrierType.java rename to src/main/java/de/avatic/lcc/model/db/packaging/LoadCarrierType.java index e810cba..9da6f85 100644 --- a/src/main/java/de/avatic/lcc/model/packaging/LoadCarrierType.java +++ b/src/main/java/de/avatic/lcc/model/db/packaging/LoadCarrierType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.packaging; +package de.avatic.lcc.model.db.packaging; /** diff --git a/src/main/java/de/avatic/lcc/model/packaging/Packaging.java b/src/main/java/de/avatic/lcc/model/db/packaging/Packaging.java similarity index 96% rename from src/main/java/de/avatic/lcc/model/packaging/Packaging.java rename to src/main/java/de/avatic/lcc/model/db/packaging/Packaging.java index 442322d..053fc2b 100644 --- a/src/main/java/de/avatic/lcc/model/packaging/Packaging.java +++ b/src/main/java/de/avatic/lcc/model/db/packaging/Packaging.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.packaging; +package de.avatic.lcc.model.db.packaging; public class Packaging { private Integer id; diff --git a/src/main/java/de/avatic/lcc/model/packaging/PackagingDimension.java b/src/main/java/de/avatic/lcc/model/db/packaging/PackagingDimension.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/packaging/PackagingDimension.java rename to src/main/java/de/avatic/lcc/model/db/packaging/PackagingDimension.java index 458e352..3d450ff 100644 --- a/src/main/java/de/avatic/lcc/model/packaging/PackagingDimension.java +++ b/src/main/java/de/avatic/lcc/model/db/packaging/PackagingDimension.java @@ -1,9 +1,7 @@ -package de.avatic.lcc.model.packaging; +package de.avatic.lcc.model.db.packaging; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; - -import java.math.BigDecimal; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; public class PackagingDimension { diff --git a/src/main/java/de/avatic/lcc/model/packaging/PackagingType.java b/src/main/java/de/avatic/lcc/model/db/packaging/PackagingType.java similarity index 90% rename from src/main/java/de/avatic/lcc/model/packaging/PackagingType.java rename to src/main/java/de/avatic/lcc/model/db/packaging/PackagingType.java index f78616f..b72b85c 100644 --- a/src/main/java/de/avatic/lcc/model/packaging/PackagingType.java +++ b/src/main/java/de/avatic/lcc/model/db/packaging/PackagingType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.packaging; +package de.avatic.lcc.model.db.packaging; import de.avatic.lcc.dto.generic.DimensionDTO; diff --git a/src/main/java/de/avatic/lcc/model/premises/Premise.java b/src/main/java/de/avatic/lcc/model/db/premises/Premise.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/premises/Premise.java rename to src/main/java/de/avatic/lcc/model/db/premises/Premise.java index 4011447..45ed229 100644 --- a/src/main/java/de/avatic/lcc/model/premises/Premise.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/Premise.java @@ -1,8 +1,8 @@ -package de.avatic.lcc.model.premises; +package de.avatic.lcc.model.db.premises; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import jakarta.validation.constraints.Digits; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; diff --git a/src/main/java/de/avatic/lcc/model/premises/PremiseListEntry.java b/src/main/java/de/avatic/lcc/model/db/premises/PremiseListEntry.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/premises/PremiseListEntry.java rename to src/main/java/de/avatic/lcc/model/db/premises/PremiseListEntry.java index a1812aa..d9cb54b 100644 --- a/src/main/java/de/avatic/lcc/model/premises/PremiseListEntry.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/PremiseListEntry.java @@ -1,7 +1,7 @@ -package de.avatic.lcc.model.premises; +package de.avatic.lcc.model.db.premises; import de.avatic.lcc.dto.calculation.PremiseState; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import java.math.BigDecimal; import java.time.LocalDateTime; diff --git a/src/main/java/de/avatic/lcc/model/premises/PremiseState.java b/src/main/java/de/avatic/lcc/model/db/premises/PremiseState.java similarity index 60% rename from src/main/java/de/avatic/lcc/model/premises/PremiseState.java rename to src/main/java/de/avatic/lcc/model/db/premises/PremiseState.java index 039d2b6..7a521c0 100644 --- a/src/main/java/de/avatic/lcc/model/premises/PremiseState.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/PremiseState.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises; +package de.avatic.lcc.model.db.premises; public enum PremiseState { diff --git a/src/main/java/de/avatic/lcc/model/premises/route/Destination.java b/src/main/java/de/avatic/lcc/model/db/premises/route/Destination.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/premises/route/Destination.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/Destination.java index 5d323a0..0aeb820 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/Destination.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/Destination.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/model/premises/route/Route.java b/src/main/java/de/avatic/lcc/model/db/premises/route/Route.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/premises/route/Route.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/Route.java index fadf500..0a837d2 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/Route.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/Route.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; public class Route { diff --git a/src/main/java/de/avatic/lcc/model/premises/route/RouteInformation.java b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteInformation.java similarity index 86% rename from src/main/java/de/avatic/lcc/model/premises/route/RouteInformation.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/RouteInformation.java index 1a2d157..5ef869d 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/RouteInformation.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteInformation.java @@ -1,6 +1,5 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; -import java.util.ArrayList; import java.util.List; public class RouteInformation { diff --git a/src/main/java/de/avatic/lcc/model/premises/route/RouteNode.java b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteNode.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/premises/route/RouteNode.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/RouteNode.java index b1b3a45..cdcd802 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/RouteNode.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteNode.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; import java.math.BigDecimal; diff --git a/src/main/java/de/avatic/lcc/model/premises/route/RouteSection.java b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSection.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/premises/route/RouteSection.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/RouteSection.java index ed65946..36610c2 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/RouteSection.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSection.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; diff --git a/src/main/java/de/avatic/lcc/model/premises/route/RouteSectionInformation.java b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionInformation.java similarity index 94% rename from src/main/java/de/avatic/lcc/model/premises/route/RouteSectionInformation.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionInformation.java index 7f8060c..a9bace4 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/RouteSectionInformation.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionInformation.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; public class RouteSectionInformation { diff --git a/src/main/java/de/avatic/lcc/model/premises/route/RouteSectionType.java b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionType.java similarity index 60% rename from src/main/java/de/avatic/lcc/model/premises/route/RouteSectionType.java rename to src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionType.java index ad3c92f..1ef8e1d 100644 --- a/src/main/java/de/avatic/lcc/model/premises/route/RouteSectionType.java +++ b/src/main/java/de/avatic/lcc/model/db/premises/route/RouteSectionType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.premises.route; +package de.avatic.lcc.model.db.premises.route; public enum RouteSectionType { RAIL, SEA, POST_RUN, ROAD, MATRIX diff --git a/src/main/java/de/avatic/lcc/model/properties/CountryProperty.java b/src/main/java/de/avatic/lcc/model/db/properties/CountryProperty.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/properties/CountryProperty.java rename to src/main/java/de/avatic/lcc/model/db/properties/CountryProperty.java index a4b21d4..facd67d 100644 --- a/src/main/java/de/avatic/lcc/model/properties/CountryProperty.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/CountryProperty.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public class CountryProperty { diff --git a/src/main/java/de/avatic/lcc/model/properties/CountryPropertyMappingId.java b/src/main/java/de/avatic/lcc/model/db/properties/CountryPropertyMappingId.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/properties/CountryPropertyMappingId.java rename to src/main/java/de/avatic/lcc/model/db/properties/CountryPropertyMappingId.java index 3361888..faee068 100644 --- a/src/main/java/de/avatic/lcc/model/properties/CountryPropertyMappingId.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/CountryPropertyMappingId.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public enum CountryPropertyMappingId { UNION("Customs Union", "NONE"), diff --git a/src/main/java/de/avatic/lcc/model/properties/CustomUnionType.java b/src/main/java/de/avatic/lcc/model/db/properties/CustomUnionType.java similarity index 51% rename from src/main/java/de/avatic/lcc/model/properties/CustomUnionType.java rename to src/main/java/de/avatic/lcc/model/db/properties/CustomUnionType.java index 156ca5d..fb33e18 100644 --- a/src/main/java/de/avatic/lcc/model/properties/CustomUnionType.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/CustomUnionType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public enum CustomUnionType { EU, NONE diff --git a/src/main/java/de/avatic/lcc/model/properties/PackagingProperty.java b/src/main/java/de/avatic/lcc/model/db/properties/PackagingProperty.java similarity index 94% rename from src/main/java/de/avatic/lcc/model/properties/PackagingProperty.java rename to src/main/java/de/avatic/lcc/model/db/properties/PackagingProperty.java index 16b8664..7a2021e 100644 --- a/src/main/java/de/avatic/lcc/model/properties/PackagingProperty.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/PackagingProperty.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public class PackagingProperty { diff --git a/src/main/java/de/avatic/lcc/model/properties/PackagingPropertyMappingId.java b/src/main/java/de/avatic/lcc/model/db/properties/PackagingPropertyMappingId.java similarity index 83% rename from src/main/java/de/avatic/lcc/model/properties/PackagingPropertyMappingId.java rename to src/main/java/de/avatic/lcc/model/db/properties/PackagingPropertyMappingId.java index ce72e41..c4ef502 100644 --- a/src/main/java/de/avatic/lcc/model/properties/PackagingPropertyMappingId.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/PackagingPropertyMappingId.java @@ -1,6 +1,4 @@ -package de.avatic.lcc.model.properties; - -import org.springframework.jmx.export.naming.IdentityNamingStrategy; +package de.avatic.lcc.model.db.properties; public enum PackagingPropertyMappingId { STACKABLE("Stackable", "true"), MIXABLE("Mixable", "true"), RUST_PREVENTION("Needs rust prevention", "false"); diff --git a/src/main/java/de/avatic/lcc/model/properties/PropertyDataType.java b/src/main/java/de/avatic/lcc/model/db/properties/PropertyDataType.java similarity index 68% rename from src/main/java/de/avatic/lcc/model/properties/PropertyDataType.java rename to src/main/java/de/avatic/lcc/model/db/properties/PropertyDataType.java index 5685425..057a142 100644 --- a/src/main/java/de/avatic/lcc/model/properties/PropertyDataType.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/PropertyDataType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public enum PropertyDataType { diff --git a/src/main/java/de/avatic/lcc/model/properties/PropertySet.java b/src/main/java/de/avatic/lcc/model/db/properties/PropertySet.java similarity index 95% rename from src/main/java/de/avatic/lcc/model/properties/PropertySet.java rename to src/main/java/de/avatic/lcc/model/db/properties/PropertySet.java index 5cc7a32..efdf37b 100644 --- a/src/main/java/de/avatic/lcc/model/properties/PropertySet.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/PropertySet.java @@ -1,6 +1,6 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import java.time.LocalDateTime; diff --git a/src/main/java/de/avatic/lcc/model/properties/PropertyType.java b/src/main/java/de/avatic/lcc/model/db/properties/PropertyType.java similarity index 96% rename from src/main/java/de/avatic/lcc/model/properties/PropertyType.java rename to src/main/java/de/avatic/lcc/model/db/properties/PropertyType.java index 508a4ad..9a2c3bc 100644 --- a/src/main/java/de/avatic/lcc/model/properties/PropertyType.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/PropertyType.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; diff --git a/src/main/java/de/avatic/lcc/model/properties/SystemProperty.java b/src/main/java/de/avatic/lcc/model/db/properties/SystemProperty.java similarity index 94% rename from src/main/java/de/avatic/lcc/model/properties/SystemProperty.java rename to src/main/java/de/avatic/lcc/model/db/properties/SystemProperty.java index cf5849f..a543eb5 100644 --- a/src/main/java/de/avatic/lcc/model/properties/SystemProperty.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/SystemProperty.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public class SystemProperty { diff --git a/src/main/java/de/avatic/lcc/model/properties/SystemPropertyMappingId.java b/src/main/java/de/avatic/lcc/model/db/properties/SystemPropertyMappingId.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/properties/SystemPropertyMappingId.java rename to src/main/java/de/avatic/lcc/model/db/properties/SystemPropertyMappingId.java index 7041272..3a802f2 100644 --- a/src/main/java/de/avatic/lcc/model/properties/SystemPropertyMappingId.java +++ b/src/main/java/de/avatic/lcc/model/db/properties/SystemPropertyMappingId.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.properties; +package de.avatic.lcc.model.db.properties; public enum SystemPropertyMappingId { diff --git a/src/main/java/de/avatic/lcc/model/rates/ContainerRate.java b/src/main/java/de/avatic/lcc/model/db/rates/ContainerRate.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/rates/ContainerRate.java rename to src/main/java/de/avatic/lcc/model/db/rates/ContainerRate.java index 4f2b767..ea8bc39 100644 --- a/src/main/java/de/avatic/lcc/model/rates/ContainerRate.java +++ b/src/main/java/de/avatic/lcc/model/db/rates/ContainerRate.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.rates; +package de.avatic.lcc.model.db.rates; import de.avatic.lcc.dto.generic.TransportType; import jakarta.validation.constraints.Digits; diff --git a/src/main/java/de/avatic/lcc/model/rates/MatrixRate.java b/src/main/java/de/avatic/lcc/model/db/rates/MatrixRate.java similarity index 96% rename from src/main/java/de/avatic/lcc/model/rates/MatrixRate.java rename to src/main/java/de/avatic/lcc/model/db/rates/MatrixRate.java index 3b8e006..10b55b1 100644 --- a/src/main/java/de/avatic/lcc/model/rates/MatrixRate.java +++ b/src/main/java/de/avatic/lcc/model/db/rates/MatrixRate.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.rates; +package de.avatic.lcc.model.db.rates; import jakarta.validation.constraints.Digits; import jakarta.validation.constraints.NotNull; diff --git a/src/main/java/de/avatic/lcc/model/rates/ValidityPeriod.java b/src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriod.java similarity index 96% rename from src/main/java/de/avatic/lcc/model/rates/ValidityPeriod.java rename to src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriod.java index 27cb2fb..855e8aa 100644 --- a/src/main/java/de/avatic/lcc/model/rates/ValidityPeriod.java +++ b/src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriod.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.rates; +package de.avatic.lcc.model.db.rates; import java.time.LocalDateTime; diff --git a/src/main/java/de/avatic/lcc/model/rates/ValidityPeriodState.java b/src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriodState.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/rates/ValidityPeriodState.java rename to src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriodState.java index a8ab880..ff4c6fe 100644 --- a/src/main/java/de/avatic/lcc/model/rates/ValidityPeriodState.java +++ b/src/main/java/de/avatic/lcc/model/db/rates/ValidityPeriodState.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.rates; +package de.avatic.lcc.model.db.rates; /** * Represents the state of a validity period, which indicates the current diff --git a/src/main/java/de/avatic/lcc/model/db/users/App.java b/src/main/java/de/avatic/lcc/model/db/users/App.java new file mode 100644 index 0000000..f5b66ef --- /dev/null +++ b/src/main/java/de/avatic/lcc/model/db/users/App.java @@ -0,0 +1,53 @@ +package de.avatic.lcc.model.db.users; + +import java.util.List; + +public class App { + + private Integer id; + private String name; + private String clientId; + private String clientSecret; + + private List groups; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getClientSecret() { + return clientSecret; + } + + public void setClientSecret(String clientSecret) { + this.clientSecret = clientSecret; + } + + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } +} diff --git a/src/main/java/de/avatic/lcc/model/users/Group.java b/src/main/java/de/avatic/lcc/model/db/users/Group.java similarity index 93% rename from src/main/java/de/avatic/lcc/model/users/Group.java rename to src/main/java/de/avatic/lcc/model/db/users/Group.java index bba9138..6685eae 100644 --- a/src/main/java/de/avatic/lcc/model/users/Group.java +++ b/src/main/java/de/avatic/lcc/model/db/users/Group.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.users; +package de.avatic.lcc.model.db.users; public class Group { diff --git a/src/main/java/de/avatic/lcc/model/users/User.java b/src/main/java/de/avatic/lcc/model/db/users/User.java similarity index 97% rename from src/main/java/de/avatic/lcc/model/users/User.java rename to src/main/java/de/avatic/lcc/model/db/users/User.java index a67b6ad..c78e790 100644 --- a/src/main/java/de/avatic/lcc/model/users/User.java +++ b/src/main/java/de/avatic/lcc/model/db/users/User.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.users; +package de.avatic.lcc.model.db.users; import jakarta.validation.constraints.NotNull; diff --git a/src/main/java/de/avatic/lcc/model/utils/DimensionUnit.java b/src/main/java/de/avatic/lcc/model/db/utils/DimensionUnit.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/utils/DimensionUnit.java rename to src/main/java/de/avatic/lcc/model/db/utils/DimensionUnit.java index 3de5372..55b6247 100644 --- a/src/main/java/de/avatic/lcc/model/utils/DimensionUnit.java +++ b/src/main/java/de/avatic/lcc/model/db/utils/DimensionUnit.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.utils; +package de.avatic.lcc.model.db.utils; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/src/main/java/de/avatic/lcc/model/utils/WeightUnit.java b/src/main/java/de/avatic/lcc/model/db/utils/WeightUnit.java similarity index 98% rename from src/main/java/de/avatic/lcc/model/utils/WeightUnit.java rename to src/main/java/de/avatic/lcc/model/db/utils/WeightUnit.java index 9c4ee4b..2f9574b 100644 --- a/src/main/java/de/avatic/lcc/model/utils/WeightUnit.java +++ b/src/main/java/de/avatic/lcc/model/db/utils/WeightUnit.java @@ -1,4 +1,4 @@ -package de.avatic.lcc.model.utils; +package de.avatic.lcc.model.db.utils; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/de/avatic/lcc/excelmodel/ExcelNode.java b/src/main/java/de/avatic/lcc/model/excel/ExcelNode.java similarity index 96% rename from src/main/java/de/avatic/lcc/excelmodel/ExcelNode.java rename to src/main/java/de/avatic/lcc/model/excel/ExcelNode.java index 89d9ed2..46354d8 100644 --- a/src/main/java/de/avatic/lcc/excelmodel/ExcelNode.java +++ b/src/main/java/de/avatic/lcc/model/excel/ExcelNode.java @@ -1,13 +1,11 @@ -package de.avatic.lcc.excelmodel; +package de.avatic.lcc.model.excel; -import de.avatic.lcc.model.country.IsoCode; +import de.avatic.lcc.model.db.country.IsoCode; import jakarta.validation.constraints.*; import java.math.BigDecimal; import java.time.OffsetDateTime; -import java.util.Collection; import java.util.List; -import java.util.Map; public class ExcelNode { diff --git a/src/main/java/de/avatic/lcc/excelmodel/ExcelPackaging.java b/src/main/java/de/avatic/lcc/model/excel/ExcelPackaging.java similarity index 96% rename from src/main/java/de/avatic/lcc/excelmodel/ExcelPackaging.java rename to src/main/java/de/avatic/lcc/model/excel/ExcelPackaging.java index ae6ac0f..eb064ab 100644 --- a/src/main/java/de/avatic/lcc/excelmodel/ExcelPackaging.java +++ b/src/main/java/de/avatic/lcc/model/excel/ExcelPackaging.java @@ -1,7 +1,7 @@ -package de.avatic.lcc.excelmodel; +package de.avatic.lcc.model.excel; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import java.util.Map; diff --git a/src/main/java/de/avatic/lcc/model/user/SysGroup.java b/src/main/java/de/avatic/lcc/model/user/SysGroup.java deleted file mode 100644 index d20aaf4..0000000 --- a/src/main/java/de/avatic/lcc/model/user/SysGroup.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.avatic.lcc.model.user; - -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import org.springframework.data.annotation.Id; - -//@Deprecated -//@Table(name = "sys_group") -//public class SysGroup { -// -// @Id -// private Integer id; -// -// @NotNull -// @Size(max = 64) -// private String groupName; -// -// @NotNull -// @Size(max = 128) -// private String groupDescription; -// -//} diff --git a/src/main/java/de/avatic/lcc/model/user/SysUser.java b/src/main/java/de/avatic/lcc/model/user/SysUser.java deleted file mode 100644 index 4ce2a3d..0000000 --- a/src/main/java/de/avatic/lcc/model/user/SysUser.java +++ /dev/null @@ -1,94 +0,0 @@ -package de.avatic.lcc.model.user; - -//import jakarta.validation.constraints.NotNull; -//import jakarta.validation.constraints.Size; -//import org.springframework.data.annotation.Id; -//import org.springframework.data.relational.core.mapping.MappedCollection; -//import org.springframework.data.relational.core.mapping.Table; - -import java.util.Set; -// -//@Deprecated -//@Table(name = "sys_user") -//public class SysUser { -// -// @Id -// private Integer id; -// -// @NotNull -// @Size(max = 32) -// private String workdayId; -// -// @NotNull -// @Size(max = 254) -// private String email; -// -// @NotNull -// @Size(max = 100) -// private String firstname; -// -// @NotNull -// @Size(max = 100) -// private String lastname; -// -// @MappedCollection(idColumn = "user_id") -// private Set groups ; -// -// private Boolean isActive; -// -// public Integer getId() { -// return id; -// } -// -// public void setId(final Integer id) { -// this.id = id; -// } -// -// public String getWorkdayId() { -// return workdayId; -// } -// -// public void setWorkdayId(final String workdayId) { -// this.workdayId = workdayId; -// } -// -// public String getEmail() { -// return email; -// } -// -// public void setEmail(final String email) { -// this.email = email; -// } -// -// public String getFirstname() { -// return firstname; -// } -// -// public void setFirstname(final String firstname) { -// this.firstname = firstname; -// } -// -// public String getLastname() { -// return lastname; -// } -// -// public void setLastname(final String lastname) { -// this.lastname = lastname; -// } -// -// public Set getGroups() { -// return groups; -// } -// -// public void setGroups(Set groups) { -// this.groups = groups; -// } -// -// public Boolean getActive() { -// return isActive; -// } -// -// public void setActive(Boolean active) { -// isActive = active; -// } -//} diff --git a/src/main/java/de/avatic/lcc/model/user/SysUserGroupMapping.java b/src/main/java/de/avatic/lcc/model/user/SysUserGroupMapping.java deleted file mode 100644 index 2948b74..0000000 --- a/src/main/java/de/avatic/lcc/model/user/SysUserGroupMapping.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.avatic.lcc.model.user; - -// -//import jakarta.validation.constraints.NotNull; -//import org.springframework.data.annotation.Id; -//import org.springframework.data.jdbc.core.mapping.AggregateReference; -//import org.springframework.data.relational.core.mapping.Column; -//import org.springframework.data.relational.core.mapping.Table; -// -//@Deprecated -//public class SysUserGroupMapping { -// -// @Id -// private Integer id; -// -// @NotNull -// @Column("group_id") -// private AggregateReference group; -// -// public Integer getId() { -// return id; -// } -// -// public void setId(Integer id) { -// this.id = id; -// } -// -// public AggregateReference getGroup() { -// return group; -// } -// -// public void setGroup(AggregateReference group) { -// this.group = group; -// } -//} diff --git a/src/main/java/de/avatic/lcc/model/user/SysUserNode.java b/src/main/java/de/avatic/lcc/model/user/SysUserNode.java deleted file mode 100644 index 57f4ec3..0000000 --- a/src/main/java/de/avatic/lcc/model/user/SysUserNode.java +++ /dev/null @@ -1,89 +0,0 @@ -package de.avatic.lcc.model.user; - -// -//import jakarta.validation.constraints.*; -//import org.springframework.data.annotation.Id; -//import org.springframework.data.jdbc.core.mapping.AggregateReference; -//import org.springframework.data.relational.core.mapping.Column; -//import org.springframework.data.relational.core.mapping.Table; -// -//import java.math.BigDecimal; -//@Deprecated -//@Table(name = "sys_user_node") -//public class SysUserNode { -// -// @Id -// private Integer id; -// -// @NotNull -// @Column("user_id") -// private AggregateReference user; -// -// @NotNull -// @Size(max = 254) -// private String name; -// -// @NotNull -// @Size(max = 500) -// private String address; -// -// @Digits(integer = 7, fraction = 4) -// @DecimalMin("-90.0000") -// @DecimalMax("90.0000") -// private BigDecimal geoLat; -// -// @Digits(integer = 7, fraction = 4) -// @DecimalMin("-180.0000") -// @DecimalMax("180.0000") -// private BigDecimal geoLng; -// -// private Boolean isDeprecated; -// -// public Integer getId() { -// return id; -// } -// -// public void setId(Integer id) { -// this.id = id; -// } -// -// public String getName() { -// return name; -// } -// -// public void setName(String name) { -// this.name = name; -// } -// -// public String getAddress() { -// return address; -// } -// -// public void setAddress(String address) { -// this.address = address; -// } -// -// public BigDecimal getGeoLat() { -// return geoLat; -// } -// -// public void setGeoLat(BigDecimal geoLat) { -// this.geoLat = geoLat; -// } -// -// public BigDecimal getGeoLng() { -// return geoLng; -// } -// -// public void setGeoLng(BigDecimal geoLng) { -// this.geoLng = geoLng; -// } -// -// public Boolean getDeprecated() { -// return isDeprecated; -// } -// -// public void setDeprecated(Boolean deprecated) { -// isDeprecated = deprecated; -// } -//} diff --git a/src/main/java/de/avatic/lcc/repositories/DistanceMatrixRepository.java b/src/main/java/de/avatic/lcc/repositories/DistanceMatrixRepository.java index f6884dc..8cbafef 100644 --- a/src/main/java/de/avatic/lcc/repositories/DistanceMatrixRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/DistanceMatrixRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories; -import de.avatic.lcc.model.nodes.Distance; -import de.avatic.lcc.model.nodes.DistanceMatrixState; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Distance; +import de.avatic.lcc.model.db.nodes.DistanceMatrixState; +import de.avatic.lcc.model.db.nodes.Node; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/de/avatic/lcc/repositories/MaterialRepository.java b/src/main/java/de/avatic/lcc/repositories/MaterialRepository.java index 8845bff..49d824d 100644 --- a/src/main/java/de/avatic/lcc/repositories/MaterialRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/MaterialRepository.java @@ -1,20 +1,16 @@ package de.avatic.lcc.repositories; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; -import org.springframework.jdbc.support.GeneratedKeyHolder; -import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.sql.Statement; import java.util.*; import java.util.stream.Collectors; diff --git a/src/main/java/de/avatic/lcc/repositories/NodeRepository.java b/src/main/java/de/avatic/lcc/repositories/NodeRepository.java index 7213b74..36780f1 100644 --- a/src/main/java/de/avatic/lcc/repositories/NodeRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/NodeRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories; import de.avatic.lcc.dto.generic.NodeType; -import de.avatic.lcc.model.ValidityTuple; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.ValidityTuple; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobDestinationRepository.java b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobDestinationRepository.java index 22f7860..f26246d 100644 --- a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobDestinationRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobDestinationRepository.java @@ -1,7 +1,7 @@ package de.avatic.lcc.repositories.calculation; import de.avatic.lcc.dto.generic.ContainerType; -import de.avatic.lcc.model.calculations.CalculationJobDestination; +import de.avatic.lcc.model.db.calculations.CalculationJobDestination; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; diff --git a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRepository.java b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRepository.java index ac65960..e2a2864 100644 --- a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRepository.java @@ -1,8 +1,7 @@ package de.avatic.lcc.repositories.calculation; -import de.avatic.lcc.model.calculations.CalculationJob; -import de.avatic.lcc.model.calculations.CalculationJobDestination; -import de.avatic.lcc.model.calculations.CalculationJobState; +import de.avatic.lcc.model.db.calculations.CalculationJob; +import de.avatic.lcc.model.db.calculations.CalculationJobState; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; @@ -10,9 +9,7 @@ import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import javax.xml.crypto.Data; import java.sql.*; -import java.util.List; import java.util.Optional; @Repository diff --git a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRouteSectionRepository.java b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRouteSectionRepository.java index c3b0029..da0dd0c 100644 --- a/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRouteSectionRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/calculation/CalculationJobRouteSectionRepository.java @@ -2,7 +2,7 @@ package de.avatic.lcc.repositories.calculation; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.calculations.CalculationJobRouteSection; +import de.avatic.lcc.model.db.calculations.CalculationJobRouteSection; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.GeneratedKeyHolder; diff --git a/src/main/java/de/avatic/lcc/repositories/country/CountryPropertyRepository.java b/src/main/java/de/avatic/lcc/repositories/country/CountryPropertyRepository.java index b991beb..3c307c3 100644 --- a/src/main/java/de/avatic/lcc/repositories/country/CountryPropertyRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/country/CountryPropertyRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories.country; import de.avatic.lcc.dto.generic.PropertyDTO; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; diff --git a/src/main/java/de/avatic/lcc/repositories/country/CountryRepository.java b/src/main/java/de/avatic/lcc/repositories/country/CountryRepository.java index aa7b4d6..88e9e3b 100644 --- a/src/main/java/de/avatic/lcc/repositories/country/CountryRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/country/CountryRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories.country; -import de.avatic.lcc.model.country.Country; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.country.RegionCode; +import de.avatic.lcc.model.db.country.Country; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.country.RegionCode; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/error/SysErrorRepository.java b/src/main/java/de/avatic/lcc/repositories/error/SysErrorRepository.java index 33f615a..94d2726 100644 --- a/src/main/java/de/avatic/lcc/repositories/error/SysErrorRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/error/SysErrorRepository.java @@ -1,9 +1,9 @@ package de.avatic.lcc.repositories.error; -import de.avatic.lcc.model.error.SysError; -import de.avatic.lcc.model.error.SysErrorTraceItem; -import de.avatic.lcc.model.error.SysErrorType; +import de.avatic.lcc.model.db.error.SysError; +import de.avatic.lcc.model.db.error.SysErrorTraceItem; +import de.avatic.lcc.model.db.error.SysErrorType; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; @@ -15,7 +15,6 @@ import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; -import javax.swing.text.html.Option; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingDimensionRepository.java b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingDimensionRepository.java index e6baa31..2154d93 100644 --- a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingDimensionRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingDimensionRepository.java @@ -1,9 +1,9 @@ package de.avatic.lcc.repositories.packaging; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.packaging.PackagingType; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.packaging.PackagingType; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.KeyHolder; diff --git a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingPropertiesRepository.java b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingPropertiesRepository.java index d4424f9..a36aee6 100644 --- a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingPropertiesRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingPropertiesRepository.java @@ -1,9 +1,8 @@ package de.avatic.lcc.repositories.packaging; -import com.azure.spring.cloud.core.implementation.properties.PropertyMapper; -import de.avatic.lcc.model.properties.PackagingProperty; -import de.avatic.lcc.model.properties.PropertyDataType; -import de.avatic.lcc.model.properties.PropertyType; +import de.avatic.lcc.model.db.properties.PackagingProperty; +import de.avatic.lcc.model.db.properties.PropertyDataType; +import de.avatic.lcc.model.db.properties.PropertyType; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; diff --git a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingRepository.java b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingRepository.java index 42d1dbb..c6244ab 100644 --- a/src/main/java/de/avatic/lcc/repositories/packaging/PackagingRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/packaging/PackagingRepository.java @@ -1,6 +1,6 @@ package de.avatic.lcc.repositories.packaging; -import de.avatic.lcc.model.packaging.Packaging; +import de.avatic.lcc.model.db.packaging.Packaging; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/premise/DestinationRepository.java b/src/main/java/de/avatic/lcc/repositories/premise/DestinationRepository.java index 512e1fe..3ac7311 100644 --- a/src/main/java/de/avatic/lcc/repositories/premise/DestinationRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/premise/DestinationRepository.java @@ -1,6 +1,6 @@ package de.avatic.lcc.repositories.premise; -import de.avatic.lcc.model.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.Destination; import de.avatic.lcc.util.exception.badrequest.InvalidArgumentException; import de.avatic.lcc.util.exception.base.ForbiddenException; import de.avatic.lcc.util.exception.internalerror.DatabaseException; diff --git a/src/main/java/de/avatic/lcc/repositories/premise/PremiseRepository.java b/src/main/java/de/avatic/lcc/repositories/premise/PremiseRepository.java index d91db8e..652380b 100644 --- a/src/main/java/de/avatic/lcc/repositories/premise/PremiseRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/premise/PremiseRepository.java @@ -1,14 +1,14 @@ package de.avatic.lcc.repositories.premise; -import de.avatic.lcc.model.materials.Material; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.PremiseListEntry; -import de.avatic.lcc.model.premises.PremiseState; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.materials.Material; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.PremiseListEntry; +import de.avatic.lcc.model.db.premises.PremiseState; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import de.avatic.lcc.util.exception.base.ForbiddenException; diff --git a/src/main/java/de/avatic/lcc/repositories/premise/RouteNodeRepository.java b/src/main/java/de/avatic/lcc/repositories/premise/RouteNodeRepository.java index e9ad639..8cd6fb0 100644 --- a/src/main/java/de/avatic/lcc/repositories/premise/RouteNodeRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/premise/RouteNodeRepository.java @@ -1,6 +1,6 @@ package de.avatic.lcc.repositories.premise; -import de.avatic.lcc.model.premises.route.RouteNode; +import de.avatic.lcc.model.db.premises.route.RouteNode; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.GeneratedKeyHolder; diff --git a/src/main/java/de/avatic/lcc/repositories/premise/RouteRepository.java b/src/main/java/de/avatic/lcc/repositories/premise/RouteRepository.java index e3e2199..57ede36 100644 --- a/src/main/java/de/avatic/lcc/repositories/premise/RouteRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/premise/RouteRepository.java @@ -1,6 +1,6 @@ package de.avatic.lcc.repositories.premise; -import de.avatic.lcc.model.premises.route.Route; +import de.avatic.lcc.model.db.premises.route.Route; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; @@ -8,14 +8,12 @@ import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; -import javax.swing.text.html.Option; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collections; import java.util.List; -import java.util.Objects; import java.util.Optional; @Repository diff --git a/src/main/java/de/avatic/lcc/repositories/premise/RouteSectionRepository.java b/src/main/java/de/avatic/lcc/repositories/premise/RouteSectionRepository.java index 2cc36f7..f47ac8d 100644 --- a/src/main/java/de/avatic/lcc/repositories/premise/RouteSectionRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/premise/RouteSectionRepository.java @@ -2,7 +2,7 @@ package de.avatic.lcc.repositories.premise; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.premises.route.RouteSection; +import de.avatic.lcc.model.db.premises.route.RouteSection; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.GeneratedKeyHolder; diff --git a/src/main/java/de/avatic/lcc/repositories/properties/PropertyRepository.java b/src/main/java/de/avatic/lcc/repositories/properties/PropertyRepository.java index 7211c8b..0c275a5 100644 --- a/src/main/java/de/avatic/lcc/repositories/properties/PropertyRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/properties/PropertyRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories.properties; import de.avatic.lcc.dto.generic.PropertyDTO; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/properties/PropertySetRepository.java b/src/main/java/de/avatic/lcc/repositories/properties/PropertySetRepository.java index a58dca0..d292333 100644 --- a/src/main/java/de/avatic/lcc/repositories/properties/PropertySetRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/properties/PropertySetRepository.java @@ -1,9 +1,8 @@ package de.avatic.lcc.repositories.properties; -import de.avatic.lcc.model.properties.PropertySet; -import de.avatic.lcc.model.rates.ValidityPeriod; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.properties.PropertySet; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; diff --git a/src/main/java/de/avatic/lcc/repositories/rates/ContainerRateRepository.java b/src/main/java/de/avatic/lcc/repositories/rates/ContainerRateRepository.java index 5a358d8..55f1fb9 100644 --- a/src/main/java/de/avatic/lcc/repositories/rates/ContainerRateRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/rates/ContainerRateRepository.java @@ -1,8 +1,8 @@ package de.avatic.lcc.repositories.rates; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.rates.ContainerRate; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/rates/MatrixRateRepository.java b/src/main/java/de/avatic/lcc/repositories/rates/MatrixRateRepository.java index a2e852b..6cf6727 100644 --- a/src/main/java/de/avatic/lcc/repositories/rates/MatrixRateRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/rates/MatrixRateRepository.java @@ -1,7 +1,7 @@ package de.avatic.lcc.repositories.rates; -import de.avatic.lcc.model.rates.MatrixRate; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.rates.MatrixRate; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/rates/ValidityPeriodRepository.java b/src/main/java/de/avatic/lcc/repositories/rates/ValidityPeriodRepository.java index f5271bb..480dd10 100644 --- a/src/main/java/de/avatic/lcc/repositories/rates/ValidityPeriodRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/rates/ValidityPeriodRepository.java @@ -1,10 +1,9 @@ package de.avatic.lcc.repositories.rates; -import de.avatic.lcc.model.ValidityTuple; -import de.avatic.lcc.model.rates.ValidityPeriod; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.ValidityTuple; +import de.avatic.lcc.model.db.rates.ValidityPeriod; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.util.exception.internalerror.DatabaseException; -import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; diff --git a/src/main/java/de/avatic/lcc/repositories/users/AppRepository.java b/src/main/java/de/avatic/lcc/repositories/users/AppRepository.java new file mode 100644 index 0000000..ec44dbe --- /dev/null +++ b/src/main/java/de/avatic/lcc/repositories/users/AppRepository.java @@ -0,0 +1,218 @@ +package de.avatic.lcc.repositories.users; + +import de.avatic.lcc.model.db.users.App; +import de.avatic.lcc.model.db.users.Group; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +/** + * Repository for managing App entities and their group memberships. + *

+ * This repository uses Spring's JdbcTemplate for database access and provides + * CRUD-style operations for apps, along with synchronization of app-to-group + * relations. + */ +@Repository +public class AppRepository { + + + private final JdbcTemplate jdbcTemplate; + private final GroupRepository groupRepository; + + /** + * Creates a new AppRepository. + * + * @param jdbcTemplate Spring JdbcTemplate used for executing SQL queries + * @param groupRepository Repository used to resolve group identifiers + */ + public AppRepository(JdbcTemplate jdbcTemplate, GroupRepository groupRepository) { + this.jdbcTemplate = jdbcTemplate; + this.groupRepository = groupRepository; + } + + /** + * Lists all apps. + * + * @return list of all App records + */ + @Transactional + public List listApps() { + String sql = "SELECT * FROM sys_app"; + + return jdbcTemplate.query(sql, new AppMapper()); + } + + /** + * Retrieves a single App by its primary key. + * + * @param id the app identifier + * @return Optional containing the App when found; otherwise empty + */ + public Optional getById(Integer id) { + String sql = "SELECT * FROM sys_app WHERE id = ?"; + + var apps = jdbcTemplate.query(sql, new AppMapper(), id); + + if (apps.isEmpty()) + return Optional.empty(); + + return Optional.of(apps.getFirst()); + } + + /** + * Creates a new app when the id is null or updates the existing app otherwise. + * Also synchronizes the app-to-group mappings based on the provided {@link App#getGroups()}. + * + * @param app the app to create or update + */ + @Transactional + public Integer update(App app) { + + Integer appId = app.getId(); + + List groupIds = groupRepository.findGroupIds(app.getGroups().stream().map(Group::getName).toList()); + + if (appId == null) { + KeyHolder keyHolder = new GeneratedKeyHolder(); + jdbcTemplate.update(connection -> { + PreparedStatement ps = connection.prepareStatement( + "INSERT INTO sys_app (name, client_id, client_secret) " + + "VALUES (?, ?, ?)", + Statement.RETURN_GENERATED_KEYS + ); + ps.setString(1, app.getName()); + ps.setString(2, app.getClientId()); + ps.setString(3, app.getClientSecret()); + return ps; + }, keyHolder); + + appId = Objects.requireNonNull(keyHolder.getKey()).intValue(); + } else { + String query = """ + UPDATE sys_app SET name = ? WHERE id = ?"""; + + jdbcTemplate.update(query, app.getName()); + } + + updateAppGroupMappings(appId, groupIds); + + return appId; + } + + /** + * Updates the mapping table that associates an app (by id) with a set of groups. + * + * @param appId id of the app whose group relations are to be synchronized + * @param groups list of group ids that must remain associated with the app + */ + private void updateAppGroupMappings(Integer appId, List groups) { + + // Handle empty groups list case + if (groups.isEmpty()) { + jdbcTemplate.update("DELETE FROM sys_app_group_mapping WHERE app_id = ?", appId); + return; + } else { + for (Integer groupId : groups) { + jdbcTemplate.update( + "INSERT IGNORE INTO sys_app_group_mapping (app_id, group_id) VALUES (?, ?)", + appId, groupId + ); + } + } + + String placeholders = String.join(",", Collections.nCopies(groups.size(), "?")); + String query = "DELETE FROM sys_app_group_mapping WHERE app_id = ? AND group_id NOT IN (" + placeholders + ")"; + + jdbcTemplate.update( + query, + ps -> { + ps.setInt(1, appId); + for (int index = 0; index < groups.size(); index++) { + ps.setInt(index + 2, groups.get(index)); // Parameters start at index 2 + } + } + ); + } + + + /** + * Deletes an app by id. + * + * @param id id of the app to delete + */ + @Transactional + public void delete(Integer id) { + String sql = "DELETE FROM sys_app WHERE id = ?"; + jdbcTemplate.update(sql, id); + } + + /** + * Loads the groups an app belongs to. + * + * @param id app id + * @return list of group domain objects + */ + private List getGroupMemberships(int id) { + + String query = "SELECT * FROM sys_group WHERE id IN (SELECT group_id FROM sys_app_group_mapping WHERE app_id = ?)"; + + return jdbcTemplate.query(query, (rs, rowNum) -> { + var group = new Group(); + + group.setName(rs.getString("group_name")); + group.setDescription(rs.getString("group_description")); + + return group; + }, id); + } + + public Optional getByClientId(String clientId) { + + String sql = "SELECT * FROM sys_app WHERE client_id = ?"; + + var app = jdbcTemplate.query(sql, new AppMapper(), clientId); + + return Optional.ofNullable(app.isEmpty() ? null : app.getFirst()); + } + + /** + * RowMapper implementation for mapping ResultSet rows to {@link App} objects. + */ + private class AppMapper implements RowMapper { + /** + * Maps a single row of the result set to an App domain object. + * + * @param rs result set positioned at the current row + * @param rowNum current row number + * @return mapped App instance + * @throws SQLException if a JDBC access error occurs + */ + @Override + public App mapRow(ResultSet rs, int rowNum) throws SQLException { + App app = new App(); + + app.setId(rs.getInt("id")); + app.setName(rs.getString("name")); + app.setClientId(rs.getString("client_id")); + app.setClientSecret(rs.getString("client_secret")); + + app.setGroups(getGroupMemberships(app.getId())); + + return app; + } + + } +} diff --git a/src/main/java/de/avatic/lcc/repositories/users/GroupRepository.java b/src/main/java/de/avatic/lcc/repositories/users/GroupRepository.java index 143e8aa..c139e32 100644 --- a/src/main/java/de/avatic/lcc/repositories/users/GroupRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/users/GroupRepository.java @@ -1,18 +1,16 @@ package de.avatic.lcc.repositories.users; -import de.avatic.lcc.model.materials.Material; -import de.avatic.lcc.model.users.Group; -import de.avatic.lcc.repositories.MaterialRepository; +import de.avatic.lcc.model.db.users.Group; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Collections; import java.util.List; @Repository @@ -40,6 +38,29 @@ public class GroupRepository { } + @Transactional + public List findGroupIds(List groups) { + if (groups == null || groups.isEmpty()) { + return List.of(); + } + + // Create placeholders for parameterized query + String placeholders = String.join(",", Collections.nCopies(groups.size(), "?")); + String query = "SELECT id FROM sys_group WHERE group_name IN (" + placeholders + ")"; + + + return jdbcTemplate.query( + query, + ps -> { + for (int parameterIndex = 0; parameterIndex < groups.size(); parameterIndex++) { + ps.setString(parameterIndex + 1, groups.get(parameterIndex)); + } + }, + (rs, rowNum) -> rs.getInt("id") + ); + + } + @Transactional public void updateGroup(Group group) { String query = "INSERT INTO sys_group (group_name, group_description) VALUES (?, ?) ON DUPLICATE KEY UPDATE group_description = ?"; diff --git a/src/main/java/de/avatic/lcc/repositories/users/JwtTokenService.java b/src/main/java/de/avatic/lcc/repositories/users/JwtTokenService.java new file mode 100644 index 0000000..2a31686 --- /dev/null +++ b/src/main/java/de/avatic/lcc/repositories/users/JwtTokenService.java @@ -0,0 +1,53 @@ +package de.avatic.lcc.repositories.users; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.security.Keys; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.crypto.SecretKey; +import java.nio.charset.StandardCharsets; +import java.security.Key; +import java.util.Date; +import java.util.List; + +@Service +public class JwtTokenService { + + private final Key signingKey; + private final String baseUrl; + + public JwtTokenService(@Value("${jwt.secret}") String secret, @Value("${lcc.base.url}") String baseUrl) { + this.signingKey = Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)); + this.baseUrl = baseUrl; + } + + + public String createApplicationToken(String clientId, List groups) { + long expirationMs = 3600000; + + return Jwts.builder() + .issuer(baseUrl) + .subject(clientId) + .audience().add(baseUrl + "/api").and() + .issuedAt(new Date()) + .expiration(new Date(System.currentTimeMillis() + expirationMs)) + .claim("client_id", clientId) + .claim("groups", groups) + .claim("token_type", "ext_app") + .signWith(signingKey) + .compact(); + } + + + public Claims validateToken(String token) { + return Jwts.parser() + .verifyWith((SecretKey) signingKey) + .requireIssuer(baseUrl) + .requireAudience(baseUrl + "/api") + .build() + .parseSignedClaims(token) + .getPayload(); + } +} \ No newline at end of file diff --git a/src/main/java/de/avatic/lcc/repositories/users/UserNodeRepository.java b/src/main/java/de/avatic/lcc/repositories/users/UserNodeRepository.java index 1c9f002..9708fc4 100644 --- a/src/main/java/de/avatic/lcc/repositories/users/UserNodeRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/users/UserNodeRepository.java @@ -1,8 +1,7 @@ package de.avatic.lcc.repositories.users; -import de.avatic.lcc.model.ValidityTuple; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.repositories.NodeRepository; +import de.avatic.lcc.model.db.ValidityTuple; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.util.exception.base.ForbiddenException; import de.avatic.lcc.util.exception.internalerror.DatabaseException; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/main/java/de/avatic/lcc/repositories/users/UserRepository.java b/src/main/java/de/avatic/lcc/repositories/users/UserRepository.java index eba5b27..2110430 100644 --- a/src/main/java/de/avatic/lcc/repositories/users/UserRepository.java +++ b/src/main/java/de/avatic/lcc/repositories/users/UserRepository.java @@ -1,7 +1,7 @@ package de.avatic.lcc.repositories.users; -import de.avatic.lcc.model.users.Group; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.Group; +import de.avatic.lcc.model.db.users.User; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import org.springframework.jdbc.core.JdbcTemplate; @@ -23,9 +23,11 @@ import java.util.Objects; public class UserRepository { private final JdbcTemplate jdbcTemplate; + private final GroupRepository groupRepository; - public UserRepository(JdbcTemplate jdbcTemplate) { + public UserRepository(JdbcTemplate jdbcTemplate, GroupRepository groupRepository) { this.jdbcTemplate = jdbcTemplate; + this.groupRepository = groupRepository; } @Transactional @@ -51,7 +53,6 @@ public class UserRepository { return jdbcTemplate.query(query, (rs, rowNum) -> { var group = new Group(); - group.setId(rs.getInt("id")); group.setName(rs.getString("group_name")); group.setDescription(rs.getString("group_description")); @@ -65,7 +66,7 @@ public class UserRepository { Integer userId = getUserIdByWorkdayId(user.getWorkdayId()); - List groupIds = findGroupIds(user.getGroups().stream().map(Group::getName).toList()); + List groupIds = groupRepository.findGroupIds(user.getGroups().stream().map(Group::getName).toList()); if (userId == null) { KeyHolder keyHolder = new GeneratedKeyHolder(); @@ -95,27 +96,7 @@ public class UserRepository { } - private List findGroupIds(List groups) { - if (groups == null || groups.isEmpty()) { - return List.of(); - } - // Create placeholders for parameterized query - String placeholders = String.join(",", Collections.nCopies(groups.size(), "?")); - String query = "SELECT id FROM sys_group WHERE group_name IN (" + placeholders + ")"; - - - return jdbcTemplate.query( - query, - ps -> { - for (int parameterIndex = 0; parameterIndex < groups.size(); parameterIndex++) { - ps.setString(parameterIndex + 1, groups.get(parameterIndex)); - } - }, - (rs, rowNum) -> rs.getInt("id") - ); - - } private void updateUserGroupMappings(Integer userId, List groups) { diff --git a/src/main/java/de/avatic/lcc/service/access/ContainerRateService.java b/src/main/java/de/avatic/lcc/service/access/ContainerRateService.java index 41554c2..934e336 100644 --- a/src/main/java/de/avatic/lcc/service/access/ContainerRateService.java +++ b/src/main/java/de/avatic/lcc/service/access/ContainerRateService.java @@ -3,7 +3,7 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.configuration.rates.ContainerRateDTO; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.ContainerRate; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; diff --git a/src/main/java/de/avatic/lcc/service/access/CountryService.java b/src/main/java/de/avatic/lcc/service/access/CountryService.java index cddf692..39da7b0 100644 --- a/src/main/java/de/avatic/lcc/service/access/CountryService.java +++ b/src/main/java/de/avatic/lcc/service/access/CountryService.java @@ -2,10 +2,10 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.configuration.countries.view.CountryDetailDTO; import de.avatic.lcc.dto.generic.CountryDTO; -import de.avatic.lcc.model.country.Country; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.country.Country; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; diff --git a/src/main/java/de/avatic/lcc/service/access/DestinationService.java b/src/main/java/de/avatic/lcc/service/access/DestinationService.java index a27f091..658a04d 100644 --- a/src/main/java/de/avatic/lcc/service/access/DestinationService.java +++ b/src/main/java/de/avatic/lcc/service/access/DestinationService.java @@ -5,9 +5,9 @@ import de.avatic.lcc.dto.calculation.edit.destination.DestinationCreateDTO; import de.avatic.lcc.dto.calculation.edit.destination.DestinationSetDTO; import de.avatic.lcc.dto.calculation.edit.destination.DestinationSetListItemDTO; import de.avatic.lcc.dto.calculation.edit.destination.DestinationUpdateDTO; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.*; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.*; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.premise.*; import de.avatic.lcc.repositories.properties.PropertyRepository; diff --git a/src/main/java/de/avatic/lcc/service/access/MaterialService.java b/src/main/java/de/avatic/lcc/service/access/MaterialService.java index be19653..02e378f 100644 --- a/src/main/java/de/avatic/lcc/service/access/MaterialService.java +++ b/src/main/java/de/avatic/lcc/service/access/MaterialService.java @@ -2,7 +2,7 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.configuration.material.view.MaterialDetailDTO; import de.avatic.lcc.dto.generic.MaterialDTO; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; diff --git a/src/main/java/de/avatic/lcc/service/access/MatrixRateService.java b/src/main/java/de/avatic/lcc/service/access/MatrixRateService.java index 9e2b975..10ef313 100644 --- a/src/main/java/de/avatic/lcc/service/access/MatrixRateService.java +++ b/src/main/java/de/avatic/lcc/service/access/MatrixRateService.java @@ -1,15 +1,13 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.configuration.matrixrates.MatrixRateDTO; -import de.avatic.lcc.model.rates.MatrixRate; -import de.avatic.lcc.repositories.NodeRepository; +import de.avatic.lcc.model.db.rates.MatrixRate; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import de.avatic.lcc.repositories.rates.MatrixRateRepository; import de.avatic.lcc.repositories.rates.ValidityPeriodRepository; import de.avatic.lcc.service.transformer.generic.CountryTransformer; -import de.avatic.lcc.service.transformer.generic.NodeTransformer; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/de/avatic/lcc/service/access/PremisesService.java b/src/main/java/de/avatic/lcc/service/access/PremisesService.java index 3790959..3b6b037 100644 --- a/src/main/java/de/avatic/lcc/service/access/PremisesService.java +++ b/src/main/java/de/avatic/lcc/service/access/PremisesService.java @@ -7,10 +7,10 @@ import de.avatic.lcc.dto.calculation.edit.PremiseDetailDTO; import de.avatic.lcc.dto.calculation.edit.masterData.MaterialUpdateDTO; import de.avatic.lcc.dto.calculation.edit.masterData.PackagingUpdateDTO; import de.avatic.lcc.dto.calculation.edit.masterData.PriceUpdateDTO; -import de.avatic.lcc.model.calculations.CalculationJob; -import de.avatic.lcc.model.calculations.CalculationJobState; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.PremiseState; +import de.avatic.lcc.model.db.calculations.CalculationJob; +import de.avatic.lcc.model.db.calculations.CalculationJobState; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.PremiseState; import de.avatic.lcc.repositories.calculation.CalculationJobDestinationRepository; import de.avatic.lcc.repositories.calculation.CalculationJobRepository; import de.avatic.lcc.repositories.calculation.CalculationJobRouteSectionRepository; diff --git a/src/main/java/de/avatic/lcc/service/access/PropertyService.java b/src/main/java/de/avatic/lcc/service/access/PropertyService.java index 203f710..18097f8 100644 --- a/src/main/java/de/avatic/lcc/service/access/PropertyService.java +++ b/src/main/java/de/avatic/lcc/service/access/PropertyService.java @@ -2,8 +2,8 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.generic.PropertyDTO; import de.avatic.lcc.dto.generic.ValidityPeriodDTO; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import de.avatic.lcc.repositories.calculation.CalculationJobRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import de.avatic.lcc.repositories.properties.PropertySetRepository; diff --git a/src/main/java/de/avatic/lcc/service/access/PropertyValidationService.java b/src/main/java/de/avatic/lcc/service/access/PropertyValidationService.java index 50c4341..5273a60 100644 --- a/src/main/java/de/avatic/lcc/service/access/PropertyValidationService.java +++ b/src/main/java/de/avatic/lcc/service/access/PropertyValidationService.java @@ -3,10 +3,10 @@ package de.avatic.lcc.service.access; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.properties.PackagingPropertyMappingId; -import de.avatic.lcc.model.properties.PropertyDataType; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.properties.PackagingPropertyMappingId; +import de.avatic.lcc.model.db.properties.PropertyDataType; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.packaging.PackagingPropertiesRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; diff --git a/src/main/java/de/avatic/lcc/service/access/UserNodeService.java b/src/main/java/de/avatic/lcc/service/access/UserNodeService.java index fc81548..85b7596 100644 --- a/src/main/java/de/avatic/lcc/service/access/UserNodeService.java +++ b/src/main/java/de/avatic/lcc/service/access/UserNodeService.java @@ -2,8 +2,8 @@ package de.avatic.lcc.service.access; import de.avatic.lcc.dto.configuration.nodes.userNodes.AddUserNodeDTO; import de.avatic.lcc.dto.generic.NodeDTO; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.repositories.users.UserNodeRepository; import de.avatic.lcc.service.transformer.generic.NodeTransformer; diff --git a/src/main/java/de/avatic/lcc/service/api/BatchGeoApiService.java b/src/main/java/de/avatic/lcc/service/api/BatchGeoApiService.java index 5967338..a0d0cd8 100644 --- a/src/main/java/de/avatic/lcc/service/api/BatchGeoApiService.java +++ b/src/main/java/de/avatic/lcc/service/api/BatchGeoApiService.java @@ -1,11 +1,11 @@ package de.avatic.lcc.service.api; -import de.avatic.lcc.excelmodel.ExcelNode; +import de.avatic.lcc.model.excel.ExcelNode; import de.avatic.lcc.model.azuremaps.geocoding.batch.BatchGeocodingRequest; import de.avatic.lcc.model.azuremaps.geocoding.batch.BatchGeocodingResponse; import de.avatic.lcc.model.azuremaps.geocoding.batch.BatchItem; import de.avatic.lcc.model.bulk.BulkInstruction; -import de.avatic.lcc.model.country.IsoCode; +import de.avatic.lcc.model.db.country.IsoCode; import de.avatic.lcc.util.exception.internalerror.ExcelValidationError; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/de/avatic/lcc/service/api/DistanceApiService.java b/src/main/java/de/avatic/lcc/service/api/DistanceApiService.java index 42865a8..11e550b 100644 --- a/src/main/java/de/avatic/lcc/service/api/DistanceApiService.java +++ b/src/main/java/de/avatic/lcc/service/api/DistanceApiService.java @@ -1,9 +1,9 @@ package de.avatic.lcc.service.api; import de.avatic.lcc.model.azuremaps.route.RouteDirectionsResponse; -import de.avatic.lcc.model.nodes.Distance; -import de.avatic.lcc.model.nodes.DistanceMatrixState; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Distance; +import de.avatic.lcc.model.db.nodes.DistanceMatrixState; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.DistanceMatrixRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/de/avatic/lcc/service/api/GeoApiService.java b/src/main/java/de/avatic/lcc/service/api/GeoApiService.java index 565c290..1bc63f2 100644 --- a/src/main/java/de/avatic/lcc/service/api/GeoApiService.java +++ b/src/main/java/de/avatic/lcc/service/api/GeoApiService.java @@ -5,8 +5,8 @@ import de.avatic.lcc.dto.generic.NodeType; import de.avatic.lcc.model.azuremaps.geocoding.Feature; import de.avatic.lcc.model.azuremaps.geocoding.GeocodingResponse; import de.avatic.lcc.model.azuremaps.geocoding.GeocodingResult; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.nodes.Location; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.nodes.Location; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.service.transformer.generic.CountryTransformer; import de.avatic.lcc.service.transformer.generic.LocationTransformer; diff --git a/src/main/java/de/avatic/lcc/service/apps/AppsService.java b/src/main/java/de/avatic/lcc/service/apps/AppsService.java new file mode 100644 index 0000000..bf639a3 --- /dev/null +++ b/src/main/java/de/avatic/lcc/service/apps/AppsService.java @@ -0,0 +1,54 @@ +package de.avatic.lcc.service.apps; + +import de.avatic.lcc.dto.users.AppDTO; +import de.avatic.lcc.model.db.users.App; +import de.avatic.lcc.repositories.users.AppRepository; +import de.avatic.lcc.service.transformer.apps.AppTransformer; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AppsService { + + private final AppRepository appRepository; + private final AppTransformer appTransformer; + private final PasswordEncoder passwordEncoder; + + public AppsService(AppRepository appRepository, AppTransformer appTransformer, PasswordEncoder passwordEncoder) { + this.appRepository = appRepository; + this.appTransformer = appTransformer; + this.passwordEncoder = passwordEncoder; + } + + public List listApps() { + return appRepository.listApps().stream().map(appTransformer::toAppDTO).toList(); + } + + public AppDTO updateApp(AppDTO dto) { + + var newApp = dto.getId() == null; + var id = !newApp ? dto.getId() : appRepository.update(appTransformer.toAppEntity(dto)); + + return dto; + } + + public void deleteApp(Integer id) { + appRepository.delete(id); + } + + + public App validateApp(String clientId, String clientSecret) { + var app = appRepository.getByClientId(clientId); + + if (app.isPresent() && + passwordEncoder.matches(clientSecret, app.get().getClientSecret())) { + return app.get(); + } + + return null; + + } + +} diff --git a/src/main/java/de/avatic/lcc/service/bulk/BulkOperationExecutionService.java b/src/main/java/de/avatic/lcc/service/bulk/BulkOperationExecutionService.java index d7592e4..57b790d 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/BulkOperationExecutionService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/BulkOperationExecutionService.java @@ -2,14 +2,13 @@ package de.avatic.lcc.service.bulk; import de.avatic.lcc.dto.bulk.BulkOperationState; import de.avatic.lcc.dto.bulk.BulkProcessingType; -import de.avatic.lcc.model.error.SysError; -import de.avatic.lcc.model.error.SysErrorType; +import de.avatic.lcc.model.db.error.SysError; +import de.avatic.lcc.model.db.error.SysErrorType; import de.avatic.lcc.repositories.bulk.BulkOperationRepository; import de.avatic.lcc.repositories.error.SysErrorRepository; import de.avatic.lcc.service.transformer.error.SysErrorTransformer; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; diff --git a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/ContainerRateImportService.java b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/ContainerRateImportService.java index 97cb070..55e1a0d 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/ContainerRateImportService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/ContainerRateImportService.java @@ -1,6 +1,6 @@ package de.avatic.lcc.service.bulk.bulkImport; -import de.avatic.lcc.model.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.ContainerRate; import de.avatic.lcc.repositories.rates.ContainerRateRepository; import de.avatic.lcc.repositories.rates.ValidityPeriodRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MaterialBulkImportService.java b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MaterialBulkImportService.java index 480c5d0..2f9c4c1 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MaterialBulkImportService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MaterialBulkImportService.java @@ -2,9 +2,8 @@ package de.avatic.lcc.service.bulk.bulkImport; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.MaterialRepository; -import de.avatic.lcc.service.transformer.generic.MaterialTransformer; import de.avatic.lcc.util.exception.internalerror.ExcelValidationError; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MatrixRateImportService.java b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MatrixRateImportService.java index 5681f4c..1f2412a 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MatrixRateImportService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/MatrixRateImportService.java @@ -1,6 +1,6 @@ package de.avatic.lcc.service.bulk.bulkImport; -import de.avatic.lcc.model.rates.MatrixRate; +import de.avatic.lcc.model.db.rates.MatrixRate; import de.avatic.lcc.repositories.rates.MatrixRateRepository; import de.avatic.lcc.repositories.rates.ValidityPeriodRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/NodeBulkImportService.java b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/NodeBulkImportService.java index 646aabc..8331eb2 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/NodeBulkImportService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/NodeBulkImportService.java @@ -1,9 +1,9 @@ package de.avatic.lcc.service.bulk.bulkImport; -import de.avatic.lcc.excelmodel.ExcelNode; +import de.avatic.lcc.model.excel.ExcelNode; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.service.transformer.generic.NodeTransformer; import de.avatic.lcc.util.exception.internalerror.ExcelValidationError; diff --git a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/PackagingBulkImportService.java b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/PackagingBulkImportService.java index 4f01777..59b5e72 100644 --- a/src/main/java/de/avatic/lcc/service/bulk/bulkImport/PackagingBulkImportService.java +++ b/src/main/java/de/avatic/lcc/service/bulk/bulkImport/PackagingBulkImportService.java @@ -1,11 +1,11 @@ package de.avatic.lcc.service.bulk.bulkImport; -import de.avatic.lcc.excelmodel.ExcelPackaging; +import de.avatic.lcc.model.excel.ExcelPackaging; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; -import de.avatic.lcc.model.packaging.Packaging; -import de.avatic.lcc.model.packaging.PackagingType; -import de.avatic.lcc.model.properties.PackagingPropertyMappingId; +import de.avatic.lcc.model.db.packaging.Packaging; +import de.avatic.lcc.model.db.packaging.PackagingType; +import de.avatic.lcc.model.db.properties.PackagingPropertyMappingId; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/ChainResolver.java b/src/main/java/de/avatic/lcc/service/calculation/ChainResolver.java index 0047c2b..ac63798 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/ChainResolver.java +++ b/src/main/java/de/avatic/lcc/service/calculation/ChainResolver.java @@ -1,6 +1,6 @@ package de.avatic.lcc.service.calculation; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.NodeRepository; import org.jetbrains.annotations.Debug.Renderer; import org.slf4j.Logger; @@ -12,8 +12,6 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import static java.util.stream.Collectors.toList; - /** * Service responsible for resolving and building chains of nodes. *

diff --git a/src/main/java/de/avatic/lcc/service/calculation/ChangeMaterialService.java b/src/main/java/de/avatic/lcc/service/calculation/ChangeMaterialService.java index 7f5e7b3..ab85e32 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/ChangeMaterialService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/ChangeMaterialService.java @@ -2,10 +2,10 @@ package de.avatic.lcc.service.calculation; import de.avatic.lcc.dto.calculation.edit.PremiseDetailDTO; import de.avatic.lcc.dto.calculation.edit.SetDataDTO; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.properties.PackagingProperty; -import de.avatic.lcc.model.properties.PackagingPropertyMappingId; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.properties.PackagingProperty; +import de.avatic.lcc.model.db.properties.PackagingPropertyMappingId; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/ChangeSupplierService.java b/src/main/java/de/avatic/lcc/service/calculation/ChangeSupplierService.java index a97ff06..1389b2a 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/ChangeSupplierService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/ChangeSupplierService.java @@ -2,12 +2,12 @@ package de.avatic.lcc.service.calculation; import de.avatic.lcc.dto.calculation.edit.PremiseDetailDTO; import de.avatic.lcc.dto.calculation.edit.SetDataDTO; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.properties.PackagingProperty; -import de.avatic.lcc.model.properties.PackagingPropertyMappingId; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.properties.PackagingProperty; +import de.avatic.lcc.model.db.properties.PackagingPropertyMappingId; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; import de.avatic.lcc.repositories.packaging.PackagingPropertiesRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/DistanceService.java b/src/main/java/de/avatic/lcc/service/calculation/DistanceService.java index b2e418e..a83314d 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/DistanceService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/DistanceService.java @@ -1,9 +1,9 @@ package de.avatic.lcc.service.calculation; -import de.avatic.lcc.model.country.DetourIndex; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.country.DetourIndex; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.DistanceMatrixRepository; import de.avatic.lcc.repositories.country.CountryRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/calculation/PremiseCreationService.java b/src/main/java/de/avatic/lcc/service/calculation/PremiseCreationService.java index e8b8c4d..67c57e7 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/PremiseCreationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/PremiseCreationService.java @@ -1,11 +1,11 @@ package de.avatic.lcc.service.calculation; import de.avatic.lcc.dto.calculation.edit.PremiseDetailDTO; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.PremiseState; -import de.avatic.lcc.model.properties.PackagingProperty; -import de.avatic.lcc.model.properties.PackagingPropertyMappingId; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.PremiseState; +import de.avatic.lcc.model.db.properties.PackagingProperty; +import de.avatic.lcc.model.db.properties.PackagingPropertyMappingId; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/PremiseSearchStringAnalyzerService.java b/src/main/java/de/avatic/lcc/service/calculation/PremiseSearchStringAnalyzerService.java index 2dab252..d0392fd 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/PremiseSearchStringAnalyzerService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/PremiseSearchStringAnalyzerService.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.calculation; import de.avatic.lcc.dto.calculation.create.PremiseSearchResultDTO; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.premise.PremiseRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java b/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java index bd95c54..2d227e3 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/RoutingService.java @@ -2,11 +2,11 @@ package de.avatic.lcc.service.calculation; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.route.*; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ContainerRate; -import de.avatic.lcc.model.rates.MatrixRate; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.route.*; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.MatrixRate; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import de.avatic.lcc.repositories.rates.ContainerRateRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/CalculationExecutionService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/CalculationExecutionService.java index a62df72..e1240d1 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/CalculationExecutionService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/CalculationExecutionService.java @@ -1,20 +1,18 @@ package de.avatic.lcc.service.calculation.execution; -import de.avatic.lcc.calculationmodel.*; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.RateType; -import de.avatic.lcc.model.calculations.*; -import de.avatic.lcc.model.error.SysError; -import de.avatic.lcc.model.error.SysErrorType; -import de.avatic.lcc.model.packaging.LoadCarrierType; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.premises.route.RouteSection; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.repositories.calculation.CalculationJobDestinationRepository; +import de.avatic.lcc.model.calculation.*; +import de.avatic.lcc.model.db.calculations.*; +import de.avatic.lcc.model.db.error.SysError; +import de.avatic.lcc.model.db.error.SysErrorType; +import de.avatic.lcc.model.db.packaging.LoadCarrierType; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.RouteSection; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.calculation.CalculationJobRepository; -import de.avatic.lcc.repositories.calculation.CalculationJobRouteSectionRepository; import de.avatic.lcc.repositories.error.SysErrorRepository; import de.avatic.lcc.repositories.premise.DestinationRepository; import de.avatic.lcc.repositories.premise.PremiseRepository; @@ -27,7 +25,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/AirfreightCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/AirfreightCalculationService.java index d20cfde..d9cd0f5 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/AirfreightCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/AirfreightCalculationService.java @@ -1,13 +1,13 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.AirfreightResult; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.calculation.AirfreightResult; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ChangeRiskFactorCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ChangeRiskFactorCalculationService.java index e36541b..4fff82d 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ChangeRiskFactorCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ChangeRiskFactorCalculationService.java @@ -1,9 +1,9 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.ChangeRiskFactorCalculationResult; +import de.avatic.lcc.model.calculation.ChangeRiskFactorCalculationResult; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ContainerRate; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ContainerRate; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import de.avatic.lcc.repositories.rates.ContainerRateRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ContainerCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ContainerCalculationService.java index f841ca6..f297e0c 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ContainerCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ContainerCalculationService.java @@ -1,11 +1,11 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.ContainerCalculationResult; +import de.avatic.lcc.model.calculation.ContainerCalculationResult; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.PalletType; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.properties.PropertyRepository; import org.jetbrains.annotations.Debug.Renderer; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/CustomCostCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/CustomCostCalculationService.java index 53ca223..e310232 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/CustomCostCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/CustomCostCalculationService.java @@ -1,14 +1,14 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.ContainerCalculationResult; -import de.avatic.lcc.calculationmodel.CustomResult; -import de.avatic.lcc.calculationmodel.SectionInfo; +import de.avatic.lcc.model.calculation.ContainerCalculationResult; +import de.avatic.lcc.model.calculation.CustomResult; +import de.avatic.lcc.model.calculation.SectionInfo; import de.avatic.lcc.dto.generic.RateType; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.properties.CustomUnionType; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.properties.CustomUnionType; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.premise.RouteNodeRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/HandlingCostCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/HandlingCostCalculationService.java index c44e856..40c2b4b 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/HandlingCostCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/HandlingCostCalculationService.java @@ -1,12 +1,12 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.HandlingResult; -import de.avatic.lcc.model.packaging.LoadCarrierType; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.calculation.HandlingResult; +import de.avatic.lcc.model.db.packaging.LoadCarrierType; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/InventoryCostCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/InventoryCostCalculationService.java index 89180e3..d9b0658 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/InventoryCostCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/InventoryCostCalculationService.java @@ -1,12 +1,12 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.InventoryCostResult; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.properties.CountryPropertyMappingId; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.utils.DimensionUnit; +import de.avatic.lcc.model.calculation.InventoryCostResult; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.properties.CountryPropertyMappingId; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.utils.DimensionUnit; import de.avatic.lcc.repositories.country.CountryPropertyRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/PremiseToHuService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/PremiseToHuService.java index 23f058d..97badee 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/PremiseToHuService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/PremiseToHuService.java @@ -1,8 +1,8 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.packaging.PackagingType; -import de.avatic.lcc.model.premises.Premise; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.packaging.PackagingType; +import de.avatic.lcc.model.db.premises.Premise; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/RouteSectionCostCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/RouteSectionCostCalculationService.java index 786575e..2182034 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/RouteSectionCostCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/RouteSectionCostCalculationService.java @@ -1,21 +1,21 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.calculationmodel.ContainerCalculationResult; +import de.avatic.lcc.model.calculation.ContainerCalculationResult; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.calculations.CalculationJobRouteSection; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.premises.route.RouteNode; -import de.avatic.lcc.model.premises.route.RouteSection; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ContainerRate; -import de.avatic.lcc.model.rates.MatrixRate; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.calculations.CalculationJobRouteSection; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.RouteNode; +import de.avatic.lcc.model.db.premises.route.RouteSection; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.MatrixRate; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.premise.RouteNodeRepository; import de.avatic.lcc.repositories.properties.PropertyRepository; diff --git a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ShippingFrequencyCalculationService.java b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ShippingFrequencyCalculationService.java index 8c5bee5..04687f4 100644 --- a/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ShippingFrequencyCalculationService.java +++ b/src/main/java/de/avatic/lcc/service/calculation/execution/steps/ShippingFrequencyCalculationService.java @@ -1,6 +1,6 @@ package de.avatic.lcc.service.calculation.execution.steps; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.properties.PropertyRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/configuration/RateApprovalService.java b/src/main/java/de/avatic/lcc/service/configuration/RateApprovalService.java index c581f71..d49595b 100644 --- a/src/main/java/de/avatic/lcc/service/configuration/RateApprovalService.java +++ b/src/main/java/de/avatic/lcc/service/configuration/RateApprovalService.java @@ -1,8 +1,8 @@ package de.avatic.lcc.service.configuration; import de.avatic.lcc.dto.configuration.rates.StagedRatesDTO; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriod; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriod; import de.avatic.lcc.repositories.rates.ContainerRateRepository; import de.avatic.lcc.repositories.rates.MatrixRateRepository; import de.avatic.lcc.repositories.rates.ValidityPeriodRepository; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/ContainerRateExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/ContainerRateExcelMapper.java index 4c2124d..57afb87 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/ContainerRateExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/ContainerRateExcelMapper.java @@ -4,7 +4,7 @@ import de.avatic.lcc.dto.generic.TransportType; import de.avatic.lcc.model.bulk.HiddenTableType; import de.avatic.lcc.model.bulk.header.ContainerRateHeader; import de.avatic.lcc.model.bulk.header.HiddenNodeHeader; -import de.avatic.lcc.model.rates.ContainerRate; +import de.avatic.lcc.model.db.rates.ContainerRate; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.rates.ContainerRateRepository; import de.avatic.lcc.service.bulk.helper.ConstraintGenerator; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/HiddenCountryExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/HiddenCountryExcelMapper.java index 85e4d20..8430705 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/HiddenCountryExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/HiddenCountryExcelMapper.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.excelMapper; import de.avatic.lcc.model.bulk.header.HiddenCountryHeader; -import de.avatic.lcc.model.country.Country; +import de.avatic.lcc.model.db.country.Country; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.service.bulk.helper.HeaderGenerator; import org.apache.poi.ss.usermodel.CellStyle; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/HiddenNodeExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/HiddenNodeExcelMapper.java index f4c42ad..a4a70ef 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/HiddenNodeExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/HiddenNodeExcelMapper.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.excelMapper; import de.avatic.lcc.model.bulk.header.HiddenNodeHeader; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.service.bulk.helper.HeaderGenerator; import org.apache.poi.ss.usermodel.CellStyle; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/MaterialExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/MaterialExcelMapper.java index 22b1b92..4614132 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/MaterialExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/MaterialExcelMapper.java @@ -3,9 +3,7 @@ package de.avatic.lcc.service.excelMapper; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; import de.avatic.lcc.model.bulk.header.MaterialHeader; -import de.avatic.lcc.model.bulk.header.MatrixRateHeader; -import de.avatic.lcc.model.bulk.header.NodeHeader; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.service.bulk.helper.ConstraintGenerator; import de.avatic.lcc.service.bulk.helper.HeaderGenerator; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/MatrixRateExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/MatrixRateExcelMapper.java index cb9d014..f01ff7b 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/MatrixRateExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/MatrixRateExcelMapper.java @@ -1,11 +1,10 @@ package de.avatic.lcc.service.excelMapper; import de.avatic.lcc.model.bulk.HiddenTableType; -import de.avatic.lcc.model.bulk.header.ContainerRateHeader; import de.avatic.lcc.model.bulk.header.HiddenCountryHeader; import de.avatic.lcc.model.bulk.header.MatrixRateHeader; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.rates.MatrixRate; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.rates.MatrixRate; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.repositories.rates.MatrixRateRepository; import de.avatic.lcc.service.bulk.helper.ConstraintGenerator; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/NodeExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/NodeExcelMapper.java index 7f6f99d..5e2122c 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/NodeExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/NodeExcelMapper.java @@ -1,15 +1,14 @@ package de.avatic.lcc.service.excelMapper; -import de.avatic.lcc.excelmodel.ExcelNode; +import de.avatic.lcc.model.excel.ExcelNode; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; import de.avatic.lcc.model.bulk.HiddenTableType; import de.avatic.lcc.model.bulk.header.HiddenCountryHeader; import de.avatic.lcc.model.bulk.header.NodeHeader; -import de.avatic.lcc.model.bulk.header.PackagingHeader; -import de.avatic.lcc.model.country.Country; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.country.Country; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.service.bulk.helper.ConstraintGenerator; diff --git a/src/main/java/de/avatic/lcc/service/excelMapper/PackagingExcelMapper.java b/src/main/java/de/avatic/lcc/service/excelMapper/PackagingExcelMapper.java index e2d3ad3..cd1e0ec 100644 --- a/src/main/java/de/avatic/lcc/service/excelMapper/PackagingExcelMapper.java +++ b/src/main/java/de/avatic/lcc/service/excelMapper/PackagingExcelMapper.java @@ -1,18 +1,17 @@ package de.avatic.lcc.service.excelMapper; -import de.avatic.lcc.excelmodel.ExcelPackaging; +import de.avatic.lcc.model.excel.ExcelPackaging; import de.avatic.lcc.model.bulk.BulkInstruction; import de.avatic.lcc.model.bulk.BulkInstructionType; import de.avatic.lcc.model.bulk.HiddenTableType; import de.avatic.lcc.model.bulk.header.HiddenNodeHeader; -import de.avatic.lcc.model.bulk.header.MaterialHeader; import de.avatic.lcc.model.bulk.header.PackagingHeader; -import de.avatic.lcc.model.packaging.Packaging; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.properties.PropertyType; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.packaging.Packaging; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.properties.PropertyType; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; diff --git a/src/main/java/de/avatic/lcc/service/precalculation/PostCalculationCheckService.java b/src/main/java/de/avatic/lcc/service/precalculation/PostCalculationCheckService.java index a32633f..d1de294 100644 --- a/src/main/java/de/avatic/lcc/service/precalculation/PostCalculationCheckService.java +++ b/src/main/java/de/avatic/lcc/service/precalculation/PostCalculationCheckService.java @@ -1,6 +1,6 @@ package de.avatic.lcc.service.precalculation; -import de.avatic.lcc.model.calculations.CalculationResult; +import de.avatic.lcc.model.db.calculations.CalculationResult; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/precalculation/PreCalculationCheckService.java b/src/main/java/de/avatic/lcc/service/precalculation/PreCalculationCheckService.java index a0e1a99..72b67aa 100644 --- a/src/main/java/de/avatic/lcc/service/precalculation/PreCalculationCheckService.java +++ b/src/main/java/de/avatic/lcc/service/precalculation/PreCalculationCheckService.java @@ -2,16 +2,16 @@ package de.avatic.lcc.service.precalculation; import de.avatic.lcc.dto.generic.ContainerType; import de.avatic.lcc.dto.generic.RateType; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.premises.route.Route; -import de.avatic.lcc.model.premises.route.RouteSection; -import de.avatic.lcc.model.properties.PropertySet; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; -import de.avatic.lcc.model.rates.ValidityPeriod; -import de.avatic.lcc.model.rates.ValidityPeriodState; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.Route; +import de.avatic.lcc.model.db.premises.route.RouteSection; +import de.avatic.lcc.model.db.properties.PropertySet; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.rates.ValidityPeriod; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.premise.*; import de.avatic.lcc.repositories.properties.PropertySetRepository; diff --git a/src/main/java/de/avatic/lcc/service/transformer/apps/AppTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/apps/AppTransformer.java new file mode 100644 index 0000000..767d83e --- /dev/null +++ b/src/main/java/de/avatic/lcc/service/transformer/apps/AppTransformer.java @@ -0,0 +1,41 @@ +package de.avatic.lcc.service.transformer.apps; + +import de.avatic.lcc.dto.users.AppDTO; +import de.avatic.lcc.model.db.users.App; +import de.avatic.lcc.model.db.users.Group; +import org.springframework.stereotype.Service; + +@Service +public class AppTransformer { + + + public AppDTO toAppDTO(App entity) { + AppDTO dto = new AppDTO(); + + dto.setId(entity.getId()); + dto.setName(entity.getName()); + dto.setClientSecret(entity.getClientSecret()); + dto.setClientId(entity.getClientId()); + dto.setGroups(entity.getGroups().stream().map(Group::getName).toList()); + + return dto; + } + + public App toAppEntity(AppDTO dto) { + App entity = new App(); + + entity.setId(dto.getId()); + entity.setName(dto.getName()); + entity.setClientSecret(dto.getClientSecret()); + entity.setClientId(dto.getClientId()); + entity.setGroups(dto.getGroups().stream().map(this::fromGroupDTO).toList()); + + return entity; + } + + private Group fromGroupDTO(String name) { + var group = new Group(); + group.setName(name); + return group; + } +} diff --git a/src/main/java/de/avatic/lcc/service/transformer/error/SysErrorTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/error/SysErrorTransformer.java index b43186d..5b5be70 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/error/SysErrorTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/error/SysErrorTransformer.java @@ -3,9 +3,9 @@ package de.avatic.lcc.service.transformer.error; import de.avatic.lcc.dto.error.ErrorLogDTO; import de.avatic.lcc.dto.error.ErrorLogTraceItemDto; import de.avatic.lcc.dto.error.FrontendErrorDTO; -import de.avatic.lcc.model.error.SysError; -import de.avatic.lcc.model.error.SysErrorTraceItem; -import de.avatic.lcc.model.error.SysErrorType; +import de.avatic.lcc.model.db.error.SysError; +import de.avatic.lcc.model.db.error.SysErrorTraceItem; +import de.avatic.lcc.model.db.error.SysErrorType; import de.avatic.lcc.service.users.AuthorizationService; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/transformer/generic/CountryTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/generic/CountryTransformer.java index 51d58a3..b4129fb 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/generic/CountryTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/generic/CountryTransformer.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.transformer.generic; import de.avatic.lcc.dto.generic.CountryDTO; -import de.avatic.lcc.model.country.Country; +import de.avatic.lcc.model.db.country.Country; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/transformer/generic/DimensionTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/generic/DimensionTransformer.java index 6857395..02f69e4 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/generic/DimensionTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/generic/DimensionTransformer.java @@ -1,12 +1,12 @@ package de.avatic.lcc.service.transformer.generic; import de.avatic.lcc.dto.generic.DimensionDTO; -import de.avatic.lcc.excelmodel.ExcelPackaging; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.packaging.PackagingType; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.excel.ExcelPackaging; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.packaging.PackagingType; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import de.avatic.lcc.util.exception.badrequest.InvalidArgumentException; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/transformer/generic/LocationTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/generic/LocationTransformer.java index 336bbfc..3291192 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/generic/LocationTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/generic/LocationTransformer.java @@ -1,9 +1,9 @@ package de.avatic.lcc.service.transformer.generic; import de.avatic.lcc.dto.generic.LocationDTO; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.route.RouteNode; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.route.RouteNode; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/transformer/generic/MaterialTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/generic/MaterialTransformer.java index 809f3b7..e2d9796 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/generic/MaterialTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/generic/MaterialTransformer.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.transformer.generic; import de.avatic.lcc.dto.generic.MaterialDTO; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/transformer/generic/NodeTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/generic/NodeTransformer.java index eec5e08..fd71497 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/generic/NodeTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/generic/NodeTransformer.java @@ -2,11 +2,11 @@ package de.avatic.lcc.service.transformer.generic; import de.avatic.lcc.dto.generic.NodeDTO; import de.avatic.lcc.dto.generic.NodeType; -import de.avatic.lcc.excelmodel.ExcelNode; -import de.avatic.lcc.model.country.Country; -import de.avatic.lcc.model.country.IsoCode; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.route.RouteNode; +import de.avatic.lcc.model.excel.ExcelNode; +import de.avatic.lcc.model.db.country.Country; +import de.avatic.lcc.model.db.country.IsoCode; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.route.RouteNode; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.util.exception.internalerror.ExcelValidationError; diff --git a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingPropertyTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingPropertyTransformer.java index f9c2d94..698499e 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingPropertyTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingPropertyTransformer.java @@ -2,7 +2,7 @@ package de.avatic.lcc.service.transformer.material; import de.avatic.lcc.dto.generic.PropertyDTO; -import de.avatic.lcc.model.properties.PackagingProperty; +import de.avatic.lcc.model.db.properties.PackagingProperty; import org.springframework.stereotype.Service; /** diff --git a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingTransformer.java index 42c79a0..51aa607 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailPackagingTransformer.java @@ -1,23 +1,20 @@ package de.avatic.lcc.service.transformer.material; import de.avatic.lcc.dto.configuration.material.view.MaterialDetailPackagingDTO; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.packaging.Packaging; -import de.avatic.lcc.model.packaging.PackagingDimension; -import de.avatic.lcc.model.properties.PackagingProperty; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.packaging.Packaging; +import de.avatic.lcc.model.db.packaging.PackagingDimension; +import de.avatic.lcc.model.db.properties.PackagingProperty; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.packaging.PackagingDimensionRepository; import de.avatic.lcc.repositories.packaging.PackagingPropertiesRepository; import de.avatic.lcc.service.transformer.generic.DimensionTransformer; import de.avatic.lcc.service.transformer.generic.NodeTransformer; -import org.springframework.data.mapping.model.Property; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; -import static java.util.stream.Collectors.toList; - /** * Transformer service to convert {@link Packaging} entities into {@link MaterialDetailPackagingDTO} objects. * This service includes logic for mapping associated supplier, dimensions, and properties. diff --git a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailTransformer.java index 3cec5d9..4d0e1c4 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialDetailTransformer.java @@ -2,7 +2,7 @@ package de.avatic.lcc.service.transformer.material; import de.avatic.lcc.dto.configuration.material.view.MaterialDetailDTO; import de.avatic.lcc.dto.configuration.material.view.MaterialDetailPackagingDTO; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import de.avatic.lcc.repositories.packaging.PackagingRepository; import org.springframework.stereotype.Service; diff --git a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialUpdateDTOTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialUpdateDTOTransformer.java index e5658c9..f6a70dd 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/material/MaterialUpdateDTOTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/material/MaterialUpdateDTOTransformer.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.transformer.material; import de.avatic.lcc.dto.configuration.material.update.MaterialUpdateDTO; -import de.avatic.lcc.model.materials.Material; +import de.avatic.lcc.model.db.materials.Material; import org.springframework.stereotype.Service; @Deprecated diff --git a/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeDetailTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeDetailTransformer.java index e44eb6d..325a320 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeDetailTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeDetailTransformer.java @@ -3,7 +3,7 @@ package de.avatic.lcc.service.transformer.nodes; import de.avatic.lcc.dto.configuration.nodes.view.NodeDetailDTO; import de.avatic.lcc.dto.generic.NodeDTO; import de.avatic.lcc.dto.generic.NodeType; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Node; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.country.CountryRepository; import de.avatic.lcc.service.transformer.generic.CountryTransformer; diff --git a/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeUpdateDTOTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeUpdateDTOTransformer.java index ec38806..b2ac5c7 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeUpdateDTOTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/nodes/NodeUpdateDTOTransformer.java @@ -1,15 +1,10 @@ package de.avatic.lcc.service.transformer.nodes; import de.avatic.lcc.dto.configuration.nodes.update.NodeUpdateDTO; -import de.avatic.lcc.dto.generic.NodeType; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.repositories.country.CountryRepository; +import de.avatic.lcc.model.db.nodes.Node; import org.apache.commons.lang3.NotImplementedException; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.util.ArrayList; - @Service public class NodeUpdateDTOTransformer { diff --git a/src/main/java/de/avatic/lcc/service/transformer/premise/DestinationTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/premise/DestinationTransformer.java index 25e5ccb..d3dd1be 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/premise/DestinationTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/premise/DestinationTransformer.java @@ -1,7 +1,7 @@ package de.avatic.lcc.service.transformer.premise; import de.avatic.lcc.dto.calculation.DestinationDTO; -import de.avatic.lcc.model.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.Destination; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.premise.RouteRepository; import de.avatic.lcc.service.transformer.generic.NodeTransformer; diff --git a/src/main/java/de/avatic/lcc/service/transformer/premise/PremiseTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/premise/PremiseTransformer.java index 1db79c2..37cfef8 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/premise/PremiseTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/premise/PremiseTransformer.java @@ -6,8 +6,8 @@ import de.avatic.lcc.dto.calculation.edit.PremiseDetailDTO; import de.avatic.lcc.dto.generic.LocationDTO; import de.avatic.lcc.dto.generic.NodeDTO; import de.avatic.lcc.dto.generic.NodeType; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.PremiseListEntry; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.PremiseListEntry; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.country.CountryRepository; diff --git a/src/main/java/de/avatic/lcc/service/transformer/premise/RouteTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/premise/RouteTransformer.java index 117f77d..dd49ce7 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/premise/RouteTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/premise/RouteTransformer.java @@ -2,13 +2,13 @@ package de.avatic.lcc.service.transformer.premise; import de.avatic.lcc.dto.calculation.RouteDTO; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.premises.route.RouteNode; -import de.avatic.lcc.model.premises.route.RouteSection; +import de.avatic.lcc.model.db.premises.route.RouteNode; +import de.avatic.lcc.model.db.premises.route.RouteSection; import de.avatic.lcc.repositories.premise.RouteNodeRepository; import de.avatic.lcc.repositories.premise.RouteSectionRepository; import de.avatic.lcc.service.transformer.generic.NodeTransformer; import org.springframework.stereotype.Service; -import de.avatic.lcc.model.premises.route.Route; +import de.avatic.lcc.model.db.premises.route.Route; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/de/avatic/lcc/service/transformer/rates/ValidityPeriodTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/rates/ValidityPeriodTransformer.java index c565230..a1f37cd 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/rates/ValidityPeriodTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/rates/ValidityPeriodTransformer.java @@ -1,8 +1,8 @@ package de.avatic.lcc.service.transformer.rates; import de.avatic.lcc.dto.generic.ValidityPeriodDTO; -import de.avatic.lcc.model.properties.PropertySet; -import de.avatic.lcc.model.rates.ValidityPeriod; +import de.avatic.lcc.model.db.properties.PropertySet; +import de.avatic.lcc.model.db.rates.ValidityPeriod; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/transformer/report/ReportTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/report/ReportTransformer.java index 5c48931..3450b83 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/report/ReportTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/report/ReportTransformer.java @@ -6,12 +6,12 @@ import de.avatic.lcc.dto.report.ReportDTO; import de.avatic.lcc.dto.report.ReportDestinationDTO; import de.avatic.lcc.dto.report.ReportEntryDTO; import de.avatic.lcc.dto.report.ReportSectionDTO; -import de.avatic.lcc.model.calculations.CalculationJob; -import de.avatic.lcc.model.calculations.CalculationJobDestination; -import de.avatic.lcc.model.calculations.CalculationJobRouteSection; -import de.avatic.lcc.model.nodes.Node; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.properties.SystemPropertyMappingId; +import de.avatic.lcc.model.db.calculations.CalculationJob; +import de.avatic.lcc.model.db.calculations.CalculationJobDestination; +import de.avatic.lcc.model.db.calculations.CalculationJobRouteSection; +import de.avatic.lcc.model.db.nodes.Node; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.properties.SystemPropertyMappingId; import de.avatic.lcc.repositories.MaterialRepository; import de.avatic.lcc.repositories.NodeRepository; import de.avatic.lcc.repositories.calculation.CalculationJobDestinationRepository; diff --git a/src/main/java/de/avatic/lcc/service/transformer/users/UserTransformer.java b/src/main/java/de/avatic/lcc/service/transformer/users/UserTransformer.java index 14b56ab..7a3e1d3 100644 --- a/src/main/java/de/avatic/lcc/service/transformer/users/UserTransformer.java +++ b/src/main/java/de/avatic/lcc/service/transformer/users/UserTransformer.java @@ -1,8 +1,8 @@ package de.avatic.lcc.service.transformer.users; import de.avatic.lcc.dto.users.UserDTO; -import de.avatic.lcc.model.users.Group; -import de.avatic.lcc.model.users.User; +import de.avatic.lcc.model.db.users.Group; +import de.avatic.lcc.model.db.users.User; import org.springframework.stereotype.Service; @Service diff --git a/src/main/java/de/avatic/lcc/service/users/AuthorizationService.java b/src/main/java/de/avatic/lcc/service/users/AuthorizationService.java index f858398..5a0e429 100644 --- a/src/main/java/de/avatic/lcc/service/users/AuthorizationService.java +++ b/src/main/java/de/avatic/lcc/service/users/AuthorizationService.java @@ -2,7 +2,6 @@ package de.avatic.lcc.service.users; import de.avatic.lcc.config.LccOidcUser; import de.avatic.lcc.dto.users.UserDTO; -import de.avatic.lcc.model.users.User; import de.avatic.lcc.repositories.users.UserRepository; import de.avatic.lcc.service.transformer.users.UserTransformer; import de.avatic.lcc.util.exception.base.ForbiddenException; diff --git a/src/main/java/de/avatic/lcc/service/users/GroupService.java b/src/main/java/de/avatic/lcc/service/users/GroupService.java index c468362..3e740cf 100644 --- a/src/main/java/de/avatic/lcc/service/users/GroupService.java +++ b/src/main/java/de/avatic/lcc/service/users/GroupService.java @@ -1,15 +1,12 @@ package de.avatic.lcc.service.users; import de.avatic.lcc.dto.users.GroupDTO; -import de.avatic.lcc.dto.users.UserDTO; -import de.avatic.lcc.model.users.Group; +import de.avatic.lcc.model.db.users.Group; import de.avatic.lcc.repositories.pagination.SearchQueryPagination; import de.avatic.lcc.repositories.pagination.SearchQueryResult; import de.avatic.lcc.repositories.users.GroupRepository; import org.springframework.stereotype.Service; -import java.util.List; - /** * Service class for managing group-related operations such as updating groups * and retrieving group data. diff --git a/src/main/java/de/avatic/lcc/util/exception/badrequest/PropertyValidationException.java b/src/main/java/de/avatic/lcc/util/exception/badrequest/PropertyValidationException.java index f0aa620..233452f 100644 --- a/src/main/java/de/avatic/lcc/util/exception/badrequest/PropertyValidationException.java +++ b/src/main/java/de/avatic/lcc/util/exception/badrequest/PropertyValidationException.java @@ -1,6 +1,5 @@ package de.avatic.lcc.util.exception.badrequest; -import de.avatic.lcc.model.properties.PropertyDataType; import de.avatic.lcc.util.exception.base.BadRequestException; public class PropertyValidationException extends BadRequestException { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3a4c4d4..a56307b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,6 +7,7 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.sql.init.mode=never lcc.bulk.sheet_password=secretSheet?! lcc.allowed_cors=${ALLOWED_CORS_DOMAIN} +lcc.base.url=${LCC_BASE_URL} azure.maps.client.id=${AZURE_MAPS_CLIENT_ID} azure.maps.subscription.key=${AZURE_MAPS_SUBSCRIPTION_KEY} spring.servlet.multipart.max-file-size=30MB @@ -16,3 +17,4 @@ spring.cloud.azure.active-directory.profile.tenant-id=${AZURE_TENANT_ID} spring.cloud.azure.active-directory.credential.client-id=${AZURE_CLIENT_ID} spring.cloud.azure.active-directory.credential.client-secret=${AZURE_CLIENT_SECRET} spring.cloud.azure.active-directory.authorization-clients.graph.scopes=openid,profile,email,https://graph.microsoft.com/User.Read +jwt.secret=${JWT_SECRET} diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index ad8dbab..4e5e76c 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -115,10 +115,9 @@ CREATE TABLE IF NOT EXISTS `sys_group` -- Junction table for user-group assignments CREATE TABLE IF NOT EXISTS `sys_user_group_mapping` ( - `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `user_id` INT NOT NULL, `group_id` INT NOT NULL, - UNIQUE INDEX `idx_user_group` (`user_id`, `group_id`), + PRIMARY KEY (`user_id`, `group_id`), FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`id`), FOREIGN KEY (`group_id`) REFERENCES `sys_group` (`id`) ) COMMENT 'Links users with their associated groups'; @@ -138,6 +137,26 @@ CREATE TABLE IF NOT EXISTS `sys_user_node` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ) COMMENT 'Contains user generated logistic nodes'; +-- Main table for user information +CREATE TABLE IF NOT EXISTS `sys_app` +( + `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + client_id VARCHAR(255) NOT NULL UNIQUE, + client_secret VARCHAR(255) NOT NULL, -- BCrypt gehashed + name VARCHAR(255) NOT NULL +) COMMENT 'Stores basic information about external applications'; + + +-- Junction table for user-group assignments +CREATE TABLE IF NOT EXISTS `sys_app_group_mapping` +( + `app_id` INT NOT NULL, + `group_id` INT NOT NULL, + PRIMARY KEY (`app_id`, `group_id`), + FOREIGN KEY (`app_id`) REFERENCES `sys_app` (`id`), + FOREIGN KEY (`group_id`) REFERENCES `sys_group` (`id`) +) COMMENT 'Links app with their associated groups'; + -- logistic nodes CREATE TABLE IF NOT EXISTS node @@ -388,10 +407,10 @@ CREATE TABLE IF NOT EXISTS premise CREATE TABLE IF NOT EXISTS premise_destination ( - id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - premise_id INT NOT NULL, + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + premise_id INT NOT NULL, annual_amount INT UNSIGNED COMMENT 'annual amount in single pieces', - destination_node_id INT NOT NULL, + destination_node_id INT NOT NULL, is_d2d BOOLEAN DEFAULT FALSE, rate_d2d DECIMAL(15, 2) DEFAULT NULL CHECK (rate_d2d >= 0), lead_time_d2d INT UNSIGNED DEFAULT NULL CHECK (lead_time_d2d >= 0), @@ -400,7 +419,7 @@ CREATE TABLE IF NOT EXISTS premise_destination disposal_cost DECIMAL(15, 2) DEFAULT NULL CHECK (disposal_cost >= 0), geo_lat DECIMAL(8, 4) CHECK (geo_lat BETWEEN -90 AND 90), geo_lng DECIMAL(8, 4) CHECK (geo_lng BETWEEN -180 AND 180), - country_id INT NOT NULL, + country_id INT NOT NULL, FOREIGN KEY (premise_id) REFERENCES premise (id), FOREIGN KEY (country_id) REFERENCES country (id), FOREIGN KEY (destination_node_id) REFERENCES node (id), @@ -597,16 +616,16 @@ CREATE TABLE IF NOT EXISTS bulk_operation CREATE TABLE IF NOT EXISTS sys_error ( - id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - user_id INT DEFAULT NULL, - title VARCHAR(255) NOT NULL, - code VARCHAR(255) NOT NULL, + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + user_id INT DEFAULT NULL, + title VARCHAR(255) NOT NULL, + code VARCHAR(255) NOT NULL, message VARCHAR(1024) NOT NULL, pinia TEXT, - calculation_job_id INT DEFAULT NULL, - bulk_operation_id INT DEFAULT NULL, - type CHAR(16) NOT NULL DEFAULT 'BACKEND', - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + calculation_job_id INT DEFAULT NULL, + bulk_operation_id INT DEFAULT NULL, + type CHAR(16) NOT NULL DEFAULT 'BACKEND', + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES sys_user (id), FOREIGN KEY (calculation_job_id) REFERENCES calculation_job (id), FOREIGN KEY (bulk_operation_id) REFERENCES bulk_operation (id), @@ -617,13 +636,13 @@ CREATE TABLE IF NOT EXISTS sys_error CREATE TABLE IF NOT EXISTS sys_error_trace_item ( - id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, - error_id INT NOT NULL, + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + error_id INT NOT NULL, line INT, - file VARCHAR(255) NOT NULL, - method VARCHAR(255) NOT NULL, + file VARCHAR(255) NOT NULL, + method VARCHAR(255) NOT NULL, fullPath VARCHAR(1024) NOT NULL, - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (error_id) REFERENCES sys_error (id) ); diff --git a/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerIntegrationTest.java b/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerIntegrationTest.java index e992a24..a374f13 100644 --- a/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerIntegrationTest.java +++ b/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerIntegrationTest.java @@ -7,9 +7,9 @@ import de.avatic.lcc.dto.calculation.edit.masterData.MaterialUpdateDTO; import de.avatic.lcc.dto.calculation.edit.masterData.PackagingUpdateDTO; import de.avatic.lcc.dto.calculation.edit.masterData.PriceUpdateDTO; import de.avatic.lcc.dto.generic.DimensionDTO; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerTestData.java b/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerTestData.java index 017408d..ff27667 100644 --- a/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerTestData.java +++ b/src/test/java/de/avatic/lcc/controller/calculation/PremiseControllerTestData.java @@ -2,7 +2,7 @@ package de.avatic.lcc.controller.calculation; import de.avatic.lcc.dto.generic.RateType; import de.avatic.lcc.dto.generic.TransportType; -import de.avatic.lcc.model.nodes.Node; +import de.avatic.lcc.model.db.nodes.Node; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; diff --git a/src/test/java/de/avatic/lcc/controller/calculation/PremiseTestsHelper.java b/src/test/java/de/avatic/lcc/controller/calculation/PremiseTestsHelper.java index a0b1ddf..36fa3eb 100644 --- a/src/test/java/de/avatic/lcc/controller/calculation/PremiseTestsHelper.java +++ b/src/test/java/de/avatic/lcc/controller/calculation/PremiseTestsHelper.java @@ -1,12 +1,12 @@ package de.avatic.lcc.controller.calculation; -import de.avatic.lcc.model.nodes.Location; -import de.avatic.lcc.model.premises.Premise; -import de.avatic.lcc.model.premises.PremiseState; -import de.avatic.lcc.model.premises.route.Destination; -import de.avatic.lcc.model.premises.route.Route; -import de.avatic.lcc.model.utils.DimensionUnit; -import de.avatic.lcc.model.utils.WeightUnit; +import de.avatic.lcc.model.db.nodes.Location; +import de.avatic.lcc.model.db.premises.Premise; +import de.avatic.lcc.model.db.premises.PremiseState; +import de.avatic.lcc.model.db.premises.route.Destination; +import de.avatic.lcc.model.db.premises.route.Route; +import de.avatic.lcc.model.db.utils.DimensionUnit; +import de.avatic.lcc.model.db.utils.WeightUnit; import org.springframework.boot.test.context.TestComponent; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/test/java/de/avatic/lcc/controller/configuration/RateControllerIntegrationTest.java b/src/test/java/de/avatic/lcc/controller/configuration/RateControllerIntegrationTest.java index 7bb1ab7..11257d5 100644 --- a/src/test/java/de/avatic/lcc/controller/configuration/RateControllerIntegrationTest.java +++ b/src/test/java/de/avatic/lcc/controller/configuration/RateControllerIntegrationTest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import de.avatic.lcc.dto.configuration.matrixrates.MatrixRateDTO; import de.avatic.lcc.dto.configuration.rates.ContainerRateDTO; import de.avatic.lcc.dto.generic.ValidityPeriodDTO; -import de.avatic.lcc.model.rates.ValidityPeriodState; +import de.avatic.lcc.model.db.rates.ValidityPeriodState; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; diff --git a/src/test/resources/master_data/users.sql b/src/test/resources/master_data/users.sql index 2a1b8da..824a1a6 100644 --- a/src/test/resources/master_data/users.sql +++ b/src/test/resources/master_data/users.sql @@ -20,6 +20,11 @@ VALUES ('packaging', 'Login, generate reports, edit packaging data'); INSERT INTO sys_group(group_name, group_description) VALUES ('super', 'Login, generate reports, do calculations, edit freight rates, edit packaging data'); +INSERT INTO sys_group(group_name, group_description) +VALUES ('service', 'Register API Tokens'); +INSERT INTO sys_group(group_name, group_description) +VALUES ('right-management', + 'Add/Remove users, groups, etc.'); INSERT INTO sys_user_group_mapping (user_id, group_id) VALUES ((SELECT id FROM sys_group WHERE group_name = 'super'),