package incheon.ags.ias.trms.service.impl;

import incheon.ags.ias.trms.mapper.TrmsAgreMapper;
import incheon.ags.ias.trms.mapper.TrmsMapper;
import incheon.ags.ias.trms.vo.TrmsAgreVO;
import incheon.ags.ias.trms.vo.TrmsSearchVO;
import incheon.ags.ias.trms.service.TrmsService;
import incheon.ags.ias.trms.vo.TrmsVO;
import lombok.RequiredArgsConstructor;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("trmsService")
@RequiredArgsConstructor
public class TrmsServiceImpl extends EgovAbstractServiceImpl implements TrmsService {
    private final TrmsMapper trmsMapper;
    private final TrmsAgreMapper trmsAgreMapper;

    @Override
    public List<Map<String,Object>> selectTrmsList(TrmsSearchVO trmsSearchVO) {
        return trmsMapper.selectTrmsList(trmsSearchVO);
    }

    @Override
    public List<Map<String,Object>> selectTrmsListAll(TrmsSearchVO trmsSearchVO) {
        return trmsMapper.selectTrmsListAll(trmsSearchVO);
    }

    @Override
    public int selectTrmsListTotCnt(TrmsSearchVO trmsSearchVO) {
        return trmsMapper.selectTrmsListTotCnt(trmsSearchVO);
    }

    @Override
    public TrmsVO selectTrmsDetail(Long trmsSn) {
        return trmsMapper.selectTrmsDetail(trmsSn);
    }

    @Override
    public int insertTrms(TrmsVO trmsVO) {
        return trmsMapper.insertTrms(trmsVO);
    }

    @Override
    public int updateTrms(TrmsVO trmsVO) {
        return trmsMapper.updateTrms(trmsVO);
    }

    @Override
    public int deleteTrms(Long trmsSn) {
        return trmsMapper.deleteTrms(trmsSn);
    }

    @Override
    public List<Map<String,Object>> selectTrmsAgreList(String userId) {
        return trmsAgreMapper.selectTrmsAgreList(userId);
    }

    @Override
    public TrmsAgreVO selectTrmsAgreDetail(TrmsAgreVO trmsAgreVO) {
        return trmsAgreMapper.selectTrmsAgreDetail(trmsAgreVO);
    }

    @Override
    public TrmsAgreVO selectLatestAgreement(Long trmsSn, String userId) {
        Map<String, Object> params = new HashMap<>();
        params.put("trmsSn", trmsSn);
        params.put("userId", userId);
        return trmsAgreMapper.selectLatestAgreement(params);
    }

    @Override
    public int insertTrmsAgre(TrmsAgreVO trmsAgreVO) {
        return trmsAgreMapper.insertTrmsAgre(trmsAgreVO);
    }

    @Override
    public int updateTrmsAgre(TrmsAgreVO trmsAgreVO) {
        return trmsAgreMapper.updateTrmsAgre(trmsAgreVO);
    }
}
