package com.iconplus.smartproc.service.lokasi; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.Lokasi; import com.iconplus.smartproc.model.request.LokasiRequest; import com.iconplus.smartproc.model.response.LokasiResponse; import com.iconplus.smartproc.repository.LokasiRepository; import com.iconplus.smartproc.util.Constants; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @Service @Slf4j public class PostCreateLokasiService implements BaseService { private final LokasiRepository lokasiRepository; public PostCreateLokasiService(LokasiRepository lokasiRepository) { this.lokasiRepository = lokasiRepository; } @Override public LokasiResponse execute(LokasiRequest input) { var existLokasi = lokasiRepository.findByLokasiAndIsDeleteFalse(input.getLokasi()); if (existLokasi.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, "Lokasi", input.getLokasi())); } Lokasi lokasi = Lokasi.builder() .lokasi(input.getLokasi()) .keterangan(input.getKeterangan()) .isDelete(false) .isActive(input.getIsActive()) .build(); var result = lokasiRepository.save(lokasi); log.info("success insert lokasi id : {}", result.getId()); return LokasiResponse.builder() .id(result.getId()) .build(); } }