customer creation now pointing to velocity
This commit is contained in:
103
src/main/java/zw/qantra/tm/seeders/ProviderSeeder.java
Normal file
103
src/main/java/zw/qantra/tm/seeders/ProviderSeeder.java
Normal file
@@ -0,0 +1,103 @@
|
||||
package zw.qantra.tm.seeders;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import zw.qantra.tm.domain.models.Provider;
|
||||
import zw.qantra.tm.domain.repositories.ProviderRepository;
|
||||
import zw.qantra.tm.utils.Utils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Seeds Provider entities.
|
||||
* Priority: 4th - Must run after CategorySeeder (providers reference categories).
|
||||
* Only seeds entities that don't already exist (checked by clientId).
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ProviderSeeder implements Seeder {
|
||||
|
||||
private final ProviderRepository providerRepository;
|
||||
|
||||
@Override
|
||||
public void seed() {
|
||||
List<Provider> providers = Arrays.asList(
|
||||
Provider.builder()
|
||||
.name("Econet Airtime")
|
||||
.description("Econet Airtime")
|
||||
.clientId("econet_airtime")
|
||||
.label("ECONET")
|
||||
.category("AIRTIME")
|
||||
.image("econet.png")
|
||||
.externalId("78f1f497-c9eb-401c-b22c-884756e68e40")
|
||||
.integrationProcessorLabel("HOT")
|
||||
.accountFieldName("Phone Number")
|
||||
.percentageCommission(5)
|
||||
.requiresAccount(true)
|
||||
.requiresAmount(true)
|
||||
.requiresPhone(true)
|
||||
.uid(Utils.getUid())
|
||||
.build(),
|
||||
Provider.builder()
|
||||
.name("NetOne Airtime")
|
||||
.description("NetOne Airtime")
|
||||
.clientId("netone_usd_airtime")
|
||||
.label("NETONE")
|
||||
.category("AIRTIME")
|
||||
.image("netone.png")
|
||||
.externalId("95d485a7-39c9-4559-8a27-6521969abe8f")
|
||||
.integrationProcessorLabel("HOT")
|
||||
.accountFieldName("Phone Number")
|
||||
.percentageCommission(5)
|
||||
.requiresAccount(true)
|
||||
.requiresAmount(true)
|
||||
.requiresPhone(true)
|
||||
.uid(Utils.getUid())
|
||||
.build(),
|
||||
Provider.builder()
|
||||
.name("Zesa Prepaid")
|
||||
.description("Prepaid Zesa")
|
||||
.clientId("zesa_prepaid_usd")
|
||||
.label("ZESA")
|
||||
.category("UTILITIES")
|
||||
.image("zesa.png")
|
||||
.externalId("0f67f7cc-b62b-4fb5-915f-6740b2afdba6")
|
||||
.integrationProcessorLabel("HOT")
|
||||
.accountFieldName("Meter Number")
|
||||
.percentageCommission(1.5)
|
||||
.requiresAccount(true)
|
||||
.requiresAmount(true)
|
||||
.requiresPhone(true)
|
||||
.uid(Utils.getUid())
|
||||
.build(),
|
||||
Provider.builder()
|
||||
.name("Econet Bundles")
|
||||
.description("Econet Bundles")
|
||||
.clientId("econet_bundles_usd")
|
||||
.label("ECONET_BUNDLES")
|
||||
.category("AIRTIME")
|
||||
.image("econet.png")
|
||||
.externalId("287863e2-a791-4106-b629-79dadc9a6779")
|
||||
.integrationProcessorLabel("HOT")
|
||||
.accountFieldName("Phone Number")
|
||||
.percentageCommission(5)
|
||||
.requiresAccount(true)
|
||||
.requiresAmount(false)
|
||||
.requiresPhone(true)
|
||||
.uid(Utils.getUid())
|
||||
.build()
|
||||
);
|
||||
|
||||
for (Provider provider : providers) {
|
||||
if (providerRepository.existsByClientId(provider.getClientId())) {
|
||||
log.info("Provider '{}' already exists, skipping.", provider.getClientId());
|
||||
} else {
|
||||
providerRepository.save(provider);
|
||||
log.info("Provider '{}' seeded.", provider.getClientId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user