package com.iconplus.smartproc.service.strategipengadaan; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.StrategiPengadaan; import com.iconplus.smartproc.model.request.StrategiPengadaanRequest; import com.iconplus.smartproc.model.response.StrategiPengadaanResponse; import com.iconplus.smartproc.repository.StrategiPengadaanRepository; import com.iconplus.smartproc.util.Constants; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.sql.Timestamp; @Service @Slf4j public class PostCreateStrategiPengadaanService implements BaseService { private final StrategiPengadaanRepository strategiPengadaanRepository; public PostCreateStrategiPengadaanService(StrategiPengadaanRepository strategiPengadaanRepository) { this.strategiPengadaanRepository = strategiPengadaanRepository; } @Override public StrategiPengadaanResponse execute(StrategiPengadaanRequest input) { var existStrategiPengadaan = strategiPengadaanRepository.findByStrategiPengadaanAndIsDeleteFalse(input.getStrategiPengadaan()); if (existStrategiPengadaan.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, input.getStrategiPengadaan())); } StrategiPengadaan strategiPengadaan = StrategiPengadaan.builder() .strategiPengadaan(input.getStrategiPengadaan()) .keterangan(input.getKeterangan()) .isDelete(false) .build(); var result = strategiPengadaanRepository.save(strategiPengadaan); log.info("success insert strategi pengadaan id : {}", result.getId()); return StrategiPengadaanResponse.builder() .id(result.getId()) .build(); } }