From 4395654b0de8a3705dddf8ef202ef51cdd3804a8 Mon Sep 17 00:00:00 2001 From: vladp Date: Mon, 2 Feb 2026 12:19:34 +0700 Subject: [PATCH] dev add apllication tariff fields --- .../tariff/TariffInitializationService.java | 101 ++++++++++++++---- src/main/resources/application.yaml | 33 +++++- 2 files changed, 113 insertions(+), 21 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffInitializationService.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffInitializationService.java index 47fd615..a5a8735 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffInitializationService.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffInitializationService.java @@ -1,6 +1,7 @@ package ru.soune.nocopy.service.tariff; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; @@ -18,6 +19,66 @@ import java.util.Map; @RequiredArgsConstructor public class TariffInitializationService { + @Value("${tarif.demo-price}") + private long demoPrice; + + @Value("${tarif.demo-tokens}") + private int demoTokens; + + @Value("${tarif.demo-user-count}") + private long demoUserCount; + + @Value("${tarif.demo-max-files-count}") + private int demoMaxFileCount; + + @Value("${tarif.start-price}") + private long startPrice; + + @Value("${tarif.start-tokens}") + private int startTokens; + + @Value("${tarif.start-max-files-count}") + private int startMaxFileCount; + + @Value("${tarif.start-user-count}") + private long startUserCount; + + @Value("${tarif.basic-price}") + private long basicPrice; + + @Value("${tarif.basic-tokens}") + private int basicTokens; + + @Value("${tarif.basic-max-files-count}") + private int basicMaxFileCount; + + @Value("${tarif.basic-user-count}") + private long basicUserCount; + + @Value("${tarif.pro-price}") + private long proPrice; + + @Value("${tarif.pro-tokens}") + private int proTokens; + + @Value("${tarif.pro-max-files-count}") + private int proMaxFileCount; + + @Value("${tarif.pro-user-count}") + private long proUserCount; + + @Value("${tarif.enterprice-price}") + private long enterpricePrice; + + @Value("${tarif.enterprice-tokens}") + private int enterpriceTokens; + + @Value("${tarif.enterprice-max-files-count}") + private int enterpriceMaxFileCount; + + @Value("${tarif.enterprice-user-count}") + private long enterpriceUserCount; + private final TariffRepository tariffRepository; @EventListener(ApplicationReadyEvent.class) @@ -49,47 +110,47 @@ public class TariffInitializationService { switch (type) { case DEMO: tariff.setName("Демо"); - tariff.setPrice(TariffConstants.DEMO_PRICE); - tariff.setTokens(TariffConstants.DEMO_TOKENS); - tariff.setMaxFilesCount(10); + tariff.setPrice(demoPrice); + tariff.setTokens(demoTokens); + tariff.setMaxFilesCount(demoMaxFileCount); tariff.setDiskSize(1024L * 1024 * 100); - tariff.setMaxUsers(1L); + tariff.setMaxUsers(demoUserCount); break; case START: tariff.setName("Стартовый"); - tariff.setPrice(TariffConstants.START_PRICE); - tariff.setTokens(TariffConstants.START_TOKENS); - tariff.setMaxFilesCount(50); + tariff.setPrice(startPrice); + tariff.setTokens(startTokens); + tariff.setMaxFilesCount(startMaxFileCount); tariff.setDiskSize(1024L * 1024 * 500); - tariff.setMaxUsers(3L); + tariff.setMaxUsers(startUserCount); break; case BASIC: tariff.setName("Базовый"); - tariff.setPrice(TariffConstants.BASIC_PRICE); - tariff.setTokens(TariffConstants.BASIC_TOKENS); - tariff.setMaxFilesCount(200); + tariff.setPrice(basicPrice); + tariff.setTokens(basicTokens); + tariff.setMaxFilesCount(basicMaxFileCount); tariff.setDiskSize(1024L * 1024 * 1024 * 2L); - tariff.setMaxUsers(10L); + tariff.setMaxUsers(basicUserCount); break; case PRO: tariff.setName("Профессиональный"); - tariff.setPrice(TariffConstants.PRO_PRICE); - tariff.setTokens(TariffConstants.PRO_TOKENS); - tariff.setMaxFilesCount(1000); + tariff.setPrice(proPrice); + tariff.setTokens(proTokens); + tariff.setMaxFilesCount(proMaxFileCount); tariff.setDiskSize(1024L * 1024 * 1024 * 10L); - tariff.setMaxUsers(25L); + tariff.setMaxUsers(proUserCount); break; case ENTERPRISE: tariff.setName("Корпоративный"); - tariff.setPrice(TariffConstants.ENTERPRISE_PRICE); - tariff.setTokens(TariffConstants.ENTERPRISE_TOKENS); - tariff.setMaxFilesCount(5000); + tariff.setPrice(enterpricePrice); + tariff.setTokens(enterpriceTokens); + tariff.setMaxFilesCount(enterpriceMaxFileCount); tariff.setDiskSize(1024L * 1024 * 1024 * 50L); - tariff.setMaxUsers(100L); + tariff.setMaxUsers(enterpriceUserCount); break; } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 35df5c7..536a718 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -93,4 +93,35 @@ app: verification: standart-subject: NO COPY - Подтверждение email адреса standart-address-from: vlad.popovtsev@gmail.com - user: Пользователь \ No newline at end of file + user: Пользователь + +tarif: + demo-price: 0 + demo-tokens: 10 + demo-max-files-count: 10 + demo-disk-size: 100 + demo-user-count: 1 + + start-tokens: 20 + start-price: 100 + start-max-files-count: 20 + start-disk-size: 200 + start-user-count: 10 + + basic-tokens: 30 + basic-price: 200 + basic-max-files-count: 30 + basic-disk-size: 300 + basic-user-count: 30 + + pro-tokens: 40 + pro-price: 300 + pro-max-files-count: 40 + pro-disk-size: 400 + pro-user-count: 50 + + enterprice-tokens: 50 + enterprice-price: 400 + enterprice-max-files-count: 50 + enterprice-disk-size: 500 + enterprice-user-count: 80 \ No newline at end of file