diff --git a/src/main/java/ru/soune/nocopy/dto/tarriff/TariffRequest.java b/src/main/java/ru/soune/nocopy/dto/tarriff/TariffRequest.java index 1eb335c..ef18158 100644 --- a/src/main/java/ru/soune/nocopy/dto/tarriff/TariffRequest.java +++ b/src/main/java/ru/soune/nocopy/dto/tarriff/TariffRequest.java @@ -24,25 +24,20 @@ public class TariffRequest { @JsonProperty("tariff_name") private String name; - @Min(value = 0, message = "Price cannot be negative") @JsonProperty("tariff_price") - private double price; + private Double price; - @Min(value = 0, message = "Tokens must be at least 0") @JsonProperty("tariff_tokens") - private int tokens; + private Integer tokens; - @Min(value = 0, message = "Max files count must be at least 0") @JsonProperty("max_files") - private int maxFilesCount; + private Integer maxFilesCount; - @Min(value = 0, message = "Disk size must be at least 0") @JsonProperty("disk_size") - private int diskSize; + private Long diskSize; - @Min(value = 0, message = "Max users must be at least 0") @JsonProperty("max_users") - private int maxUsers; + private Long maxUsers; @JsonProperty("action") private String action; diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java index 3ab603b..dee2260 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java @@ -114,17 +114,33 @@ public class TariffService { } private Tariff updateTariffFromDTO(Tariff tariff, TariffDTO dto, TariffRequest tariffRequest) { - tariff.setType(tariffRequest.getType() == null ? dto.getType(): tariffRequest.getType()); - tariff.setName(tariffRequest.getName() == null ? dto.getName(): tariffRequest.getName()); - tariff.setPrice(tariffRequest.getPrice() == 0 ? dto.getPrice(): tariffRequest.getPrice()); - tariff.setTokens(tariffRequest.getTokens() == 0 ? dto.getTokens(): tariffRequest.getTokens()); - tariff.setMaxFilesCount(tariffRequest.getMaxFilesCount() == 0 ? dto.getMaxFilesCount(): - tariffRequest.getMaxFilesCount()); - tariff.setDiskSize(tariffRequest.getDiskSize() == 0 ? dto.getDiskSize(): tariffRequest.getDiskSize()); - tariff.setMaxUsers(tariffRequest.getMaxUsers() == 0 ? dto.getMaxUsers(): tariffRequest.getMaxUsers()); - tariff.setDescription(tariffRequest.getDescription() == null ? dto.getDescription(): tariffRequest.getDescription()); - tariff.setTariffTerm(tariffRequest.getTariffTerm() == null ? TariffTimeTerm.valueOf(dto.getTariffTerm().toUpperCase()): - TariffTimeTerm.valueOf(tariffRequest.getTariffTerm())); + if (tariffRequest.getType() != null) { + tariff.setType(tariffRequest.getType()); + } + if (tariffRequest.getName() != null) { + tariff.setName(tariffRequest.getName()); + } + if (tariffRequest.getPrice() != null) { // null = не обновляем + tariff.setPrice(tariffRequest.getPrice()); + } + if (tariffRequest.getTokens() != null) { + tariff.setTokens(tariffRequest.getTokens()); + } + if (tariffRequest.getMaxFilesCount() != null) { + tariff.setMaxFilesCount(tariffRequest.getMaxFilesCount()); + } + if (tariffRequest.getDiskSize() != null) { + tariff.setDiskSize(tariffRequest.getDiskSize()); + } + if (tariffRequest.getMaxUsers() != null) { + tariff.setMaxUsers(tariffRequest.getMaxUsers()); + } + if (tariffRequest.getDescription() != null) { + tariff.setDescription(tariffRequest.getDescription()); + } + if (tariffRequest.getTariffTerm() != null) { + tariff.setTariffTerm(TariffTimeTerm.valueOf(tariffRequest.getTariffTerm())); + } return tariff; }