completed zesa journey

This commit is contained in:
2025-06-27 11:33:49 +02:00
parent fdd3a224ed
commit 6ad1f55d4b
25 changed files with 762 additions and 56 deletions

View File

@@ -8,10 +8,16 @@ import org.springframework.web.bind.annotation.RestController;
import zw.qantra.tm.domain.enums.ChargeConditionType;
import zw.qantra.tm.domain.enums.ChargeLabelEnum;
import zw.qantra.tm.domain.enums.CurrencyType;
import zw.qantra.tm.domain.models.Category;
import zw.qantra.tm.domain.models.Charge;
import zw.qantra.tm.domain.models.ChargeCondition;
import zw.qantra.tm.domain.models.PaymentProcessor;
import zw.qantra.tm.domain.models.Provider;
import zw.qantra.tm.domain.services.ChargeConditionService;
import zw.qantra.tm.domain.services.ChargeService;
import zw.qantra.tm.domain.services.CategoryService;
import zw.qantra.tm.domain.services.PaymentProcessorService;
import zw.qantra.tm.domain.services.ProviderService;
import java.math.BigDecimal;
import java.util.Arrays;
@@ -24,9 +30,90 @@ import java.util.List;
public class ConfigController {
private final ChargeConditionService chargeConditionService;
private final ChargeService chargeService;
@GetMapping("/charges")
private final PaymentProcessorService paymentProcessorService;
private final ProviderService providerService;
private final CategoryService categoryService;
@GetMapping("/seed")
public ResponseEntity charges(){
// clear existing categories before seeding
categoryService.getCategoryRepository().deleteAll();
// seed categories
List<Category> categories = Arrays.asList(
Category.builder()
.name("Airtime")
.description("Airtime for local mobile networks")
.label("AIRTIME")
.build(),
Category.builder()
.name("Utilities")
.description("Council bills & rates")
.label("UTILITIES")
.build()
);
categoryService.getCategoryRepository().saveAll(categories);
// clear existing providers before seeding
providerService.getProviderRepository().deleteAll();
// seed providers
List<Provider> providers = Arrays.asList(
Provider.builder()
.description("Econet Airtime")
.clientId("econet_airtime")
.label("ECONET")
.category("AIRTIME")
.image("econet.png")
.externalId("78f1f497-c9eb-401c-b22c-884756e68e40")
.build(),
Provider.builder()
.description("NetOne Airtime")
.clientId("netone_usd_airtime")
.label("NETONE")
.category("AIRTIME")
.image("netone.png")
.externalId("95d485a7-39c9-4559-8a27-6521969abe8f")
.build(),
Provider.builder()
.description("Prepaid Zesa")
.clientId("powertel_zesa")
.label("ZESA")
.category("UTILITIES")
.image("zesa.png")
.externalId("0f67f7cc-b62b-4fb5-915f-6740b2afdba6")
.build(),
Provider.builder()
.description("Econet Broadband")
.clientId("econet_broadband_usd")
.label("ECONET_BROADBAND")
.category("AIRTIME")
.image("econet.png")
.externalId("287863e2-a791-4106-b629-79dadc9a6779")
.build()
);
providerService.getProviderRepository().saveAll(providers);
// Clear existing payment processors before seeding
paymentProcessorService.getPaymentProcessorRepository().deleteAll();
// seed payment processors
List<PaymentProcessor> paymentProcessors = Arrays.asList(
PaymentProcessor.builder()
.name("Ecocash")
.label("ECOCASH")
.type("GATEWAY")
.image("https://www.ecocash.co.zw/images/logo.png")
.build(),
PaymentProcessor.builder()
.name("Mastercard")
.label("MPGS")
.type("GATEWAY")
.image("https://www.mastercard.com/content/dam/public/mastercardcom/global/en/icons/mc-symbol.svg")
.build()
);
paymentProcessorService.getPaymentProcessorRepository().saveAll(paymentProcessors);
// Clear existing charges and charge conditions before seeding
List<ChargeCondition> chargeConditions = Arrays.asList(
ChargeCondition.builder()
.name("Ecocash Gateway")
@@ -78,6 +165,6 @@ public class ConfigController {
chargeService.getChargeRepository().saveAll(charges);
return ResponseEntity.ok("Charges configuration complete");
return ResponseEntity.ok("Project configuration seeding complete");
}
}