package incheon.ags.uis.gisu.service.impl;

import incheon.ags.uis.gisu.mapper.AdminGisuMapper;
import incheon.ags.uis.gisu.service.AdminGisuService;
import incheon.ags.uis.gisu.vo.AdminGisuVO;
import incheon.ags.uis.gisu.vo.GisuSearchVO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class AdminGisuServiceImpl implements AdminGisuService {

    private final AdminGisuMapper mapper;

    public AdminGisuServiceImpl(AdminGisuMapper mapper) {
        this.mapper = mapper;
    }

    @Override
    public List<AdminGisuVO> getAdminGisuList(GisuSearchVO vo) {
        return mapper.selectAdminGisuList(vo);
    }

    @Override
    public int getAdminGisuListCount(GisuSearchVO vo) {
        return mapper.selectAdminGisuListCount(vo);
    }

    @Override
    @Transactional
    public void approve(Long idn, String adminUnqId) {
        int cnt = mapper.updateApprove(idn, adminUnqId);
        if (cnt == 0)
            throw new IllegalStateException("승인할 수 없는 상태입니다.");
    }

    @Override
    @Transactional
    public void reject(Long idn, String adminUnqId, String rjctRsn) {
        int cnt = mapper.updateReject(idn, adminUnqId, rjctRsn);
        if (cnt == 0)
            throw new IllegalStateException("반려할 수 없는 상태입니다.");
    }
}
