package com.example.crm.service;
import com.example.crm.model.Customer;
import com.example.crm.repository.CustomerRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional
public class CustomerService {
private final CustomerRepository customerRepository;
public CustomerService(CustomerRepository customerRepository) {
this.customerRepository = customerRepository;
}
@Transactional(readOnly = true)
public List<Customer> findAll() {
return customerRepository.findAllByOrderByNameAsc();
}
@Transactional(readOnly = true)
public Customer findById(Long id) {
return customerRepository.findById(id)
.orElseThrow(() -> new CustomerNotFoundException(id));
}
public Customer create(Customer customer) {
customer.setId(null);
return customerRepository.save(customer);
}
public Customer update(Long id, Customer updated) {
Customer existing = findById(id);
existing.setName(updated.getName());
existing.setEmail(updated.getEmail());
existing.setPhone(updated.getPhone());
existing.setCompany(updated.getCompany());
existing.setNotes(updated.getNotes());
return customerRepository.save(existing);
}
public void delete(Long id) {
if (!customerRepository.existsById(id)) {
throw new CustomerNotFoundException(id);
}
customerRepository.deleteById(id);
}
}
package com.example.crm.service;
import com.example.crm.model.Customer;
import com.example.crm.repository.CustomerRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@Transactional
public class CustomerService {
private final CustomerRepository customerRepository;
public CustomerService(CustomerRepository customerRepository) {
this.customerRepository = customerRepository;
}
@Transactional(readOnly = true)
public List<Customer> findAll() {
return customerRepository.findAllByOrderByNameAsc();
}
@Transactional(readOnly = true)
public Customer findById(Long id) {
return customerRepository.findById(id)
.orElseThrow(() -> new CustomerNotFoundException(id));
}
public Customer create(Customer customer) {
customer.setId(null);
return customerRepository.save(customer);
}
public Customer update(Long id, Customer updated) {
Customer existing = findById(id);
existing.setName(updated.getName());
existing.setEmail(updated.getEmail());
existing.setPhone(updated.getPhone());
existing.setCompany(updated.getCompany());
existing.setNotes(updated.getNotes());
return customerRepository.save(existing);
}
public void delete(Long id) {
if (!customerRepository.existsById(id)) {
throw new CustomerNotFoundException(id);
}
customerRepository.deleteById(id);
}
}