Refactoring start
This commit is contained in:
112
src/main/java/com/pmu/betengine/service/AgentService.java
Normal file
112
src/main/java/com/pmu/betengine/service/AgentService.java
Normal file
@@ -0,0 +1,112 @@
|
||||
package com.pmu.betengine.service;
|
||||
|
||||
import com.pmu.betengine.model.Agent;
|
||||
import com.pmu.betengine.repository.AgentRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class AgentService {
|
||||
|
||||
private final AgentRepository agentRepository;
|
||||
|
||||
public AgentService(AgentRepository agentRepository) {
|
||||
this.agentRepository = agentRepository;
|
||||
}
|
||||
|
||||
// Create
|
||||
public Agent createAgent(Agent agent) {
|
||||
if (agentRepository.existsByCode(agent.getCode())) {
|
||||
throw new RuntimeException("Un agent avec ce code existe déjà: " + agent.getCode());
|
||||
}
|
||||
agent.setCreatedAt(LocalDateTime.now());
|
||||
return agentRepository.save(agent);
|
||||
}
|
||||
|
||||
// Get all
|
||||
public List<Agent> getAllAgents() {
|
||||
return agentRepository.findAll();
|
||||
}
|
||||
|
||||
// Get by ID
|
||||
public Agent getAgentById(Long id) {
|
||||
return agentRepository.findById(id)
|
||||
.orElseThrow(() -> new RuntimeException("Agent non trouvé avec l'id: " + id));
|
||||
}
|
||||
|
||||
// Update
|
||||
public Agent updateAgent(Long id, Agent updatedAgent) {
|
||||
Agent existing = getAgentById(id);
|
||||
|
||||
existing.setCode(updatedAgent.getCode());
|
||||
existing.setProfile(updatedAgent.getProfile());
|
||||
existing.setPrincipalCode(updatedAgent.getPrincipalCode());
|
||||
existing.setCaisseProfile(updatedAgent.getCaisseProfile());
|
||||
existing.setStatut(updatedAgent.getStatut());
|
||||
existing.setZone(updatedAgent.getZone());
|
||||
existing.setKiosk(updatedAgent.getKiosk());
|
||||
existing.setFonction(updatedAgent.getFonction());
|
||||
existing.setDateEmbauche(updatedAgent.getDateEmbauche());
|
||||
existing.setNom(updatedAgent.getNom());
|
||||
existing.setPrenom(updatedAgent.getPrenom());
|
||||
existing.setAutresNoms(updatedAgent.getAutresNoms());
|
||||
existing.setDateNaissance(updatedAgent.getDateNaissance());
|
||||
existing.setLieuNaissance(updatedAgent.getLieuNaissance());
|
||||
existing.setVille(updatedAgent.getVille());
|
||||
existing.setAdresse(updatedAgent.getAdresse());
|
||||
existing.setAutoriserAides(updatedAgent.getAutoriserAides());
|
||||
existing.setPhone(updatedAgent.getPhone());
|
||||
existing.setPin(updatedAgent.getPin());
|
||||
existing.setLimiteInferieure(updatedAgent.getLimiteInferieure());
|
||||
existing.setLimiteSuperieure(updatedAgent.getLimiteSuperieure());
|
||||
existing.setLimiteParTransaction(updatedAgent.getLimiteParTransaction());
|
||||
existing.setLimiteMinAirtime(updatedAgent.getLimiteMinAirtime());
|
||||
existing.setLimiteMaxAirtime(updatedAgent.getLimiteMaxAirtime());
|
||||
existing.setMaxPeripheriques(updatedAgent.getMaxPeripheriques());
|
||||
existing.setLimitId(updatedAgent.getLimitId());
|
||||
existing.setNationalite(updatedAgent.getNationalite());
|
||||
existing.setCni(updatedAgent.getCni());
|
||||
existing.setCniDelivreeLe(updatedAgent.getCniDelivreeLe());
|
||||
existing.setCniDelivreeA(updatedAgent.getCniDelivreeA());
|
||||
existing.setResidence(updatedAgent.getResidence());
|
||||
existing.setAutreAdresse1(updatedAgent.getAutreAdresse1());
|
||||
existing.setStatutMarital(updatedAgent.getStatutMarital());
|
||||
existing.setEpoux(updatedAgent.getEpoux());
|
||||
existing.setAutreTelephone(updatedAgent.getAutreTelephone());
|
||||
existing.setUpdatedAt(LocalDateTime.now());
|
||||
|
||||
return agentRepository.save(existing);
|
||||
}
|
||||
|
||||
// Delete
|
||||
public String deleteAgent(Long id) {
|
||||
if (!agentRepository.existsById(id)) {
|
||||
throw new RuntimeException("Agent non trouvé avec l'id: " + id);
|
||||
}
|
||||
agentRepository.deleteById(id);
|
||||
return "Agent avec l'ID " + id + " supprimé avec succès.";
|
||||
}
|
||||
|
||||
// Find by code
|
||||
public Agent getAgentByCode(String code) {
|
||||
return agentRepository.findByCode(code)
|
||||
.orElseThrow(() -> new RuntimeException("Agent non trouvé avec le code: " + code));
|
||||
}
|
||||
|
||||
// Find by statut
|
||||
public List<Agent> getAgentsByStatut(String statut) {
|
||||
return agentRepository.findByStatut(statut);
|
||||
}
|
||||
|
||||
// Find by ville
|
||||
public List<Agent> getAgentsByVille(String ville) {
|
||||
return agentRepository.findByVille(ville);
|
||||
}
|
||||
|
||||
// Search by name
|
||||
public List<Agent> searchAgentsByName(String query) {
|
||||
return agentRepository.findByNomContainingIgnoreCaseOrPrenomContainingIgnoreCase(query, query);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user