DistributedIdVerificationService.java
package com.ecommerce.trade.infrastructure.id;
import com.ecommerce.platform.common.id.DistributedIdGenerator;
import com.ecommerce.trade.application.port.DistributedIdVerifier;
import com.ecommerce.trade.infrastructure.config.DistributedIdProperties;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
@Profile("m7-id-verification")
@Service
public class DistributedIdVerificationService implements DistributedIdVerifier {
private final DistributedIdGenerator generator;
private final DistributedIdWorkerLeaseManager leaseManager;
private final DistributedIdProperties properties;
public DistributedIdVerificationService(
DistributedIdGenerator generator,
DistributedIdWorkerLeaseManager leaseManager,
DistributedIdProperties properties) {
this.generator = generator;
this.leaseManager = leaseManager;
this.properties = properties;
}
@Override
public DistributedIdSnapshot generate(int count) {
return new DistributedIdSnapshot(
properties.instanceId(),
properties.namespace(),
leaseManager.workerId(),
generator.nextIds(count));
}
}