package incheon.cmm.g2f.poi.service.impl;

import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import incheon.cmm.g2f.poi.vo.G2FPoiVO;
import incheon.cmm.g2f.poi.mapper.G2FPoiMapper;
import incheon.cmm.g2f.poi.service.G2FPoiService;

import java.util.List;

@Service
public class G2FPoiServiceImpl extends EgovAbstractServiceImpl implements G2FPoiService {

    private final G2FPoiMapper mapper;

    public G2FPoiServiceImpl(G2FPoiMapper mapper) {
        this.mapper = mapper;
    }

    @Override
    public G2FPoiVO getById(String nfId) {
        return mapper.findById(nfId);
    }

    @Override
    public List<G2FPoiVO> getList() {
        return mapper.findAll();
    }

    @Override
    public List<G2FPoiVO> getList(String searchKeyword, String searchType, int page, int size) {
        int offset = (page - 1) * size;
        return mapper.findAllWithPaging(searchKeyword, searchType, size, offset);
    }

    @Override
    public int getTotalCount(String searchKeyword, String searchType) {
        return mapper.count(searchKeyword, searchType);
    }

    @Override
    @Transactional
    public void create(G2FPoiVO poi) {
        mapper.insert(poi);
    }

    @Override
    @Transactional
    public void update(G2FPoiVO poi) {
        mapper.update(poi);
    }

    @Override
    @Transactional
    public void delete(String nfId) {
        mapper.delete(nfId);
    }
}