package com.ycwl.basic.mapper;

import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.utils.ApiResponse;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author：longbinbin
 * @Date：2024/12/2 10:07
 * 景区管理表
 */
@Mapper
public interface ScenicMapper {
    List<ScenicRespVO> list(ScenicReqQuery scenicReqQuery);

    ScenicEntity get(Long id);

    ScenicRespVO getById(Long id);

    int add(ScenicAddOrUpdateReq scenic);

    int deleteById(Long id);

    int update(ScenicAddOrUpdateReq scenic);

    int updateStatus(Long id);

    ScenicConfigEntity getConfig(Long scenicId);
    /**
     * 添加景区配置
     *
     * @param scenicConfig
     * @return
     */
    int addConfig(ScenicConfigEntity scenicConfig);

    /**
     * 修改景区配置
     *
     * @param scenicConfigEntity
     * @return
     */
    int updateConfigById(ScenicConfigEntity scenicConfigEntity);

    /**
     * 根据景区id删除配置
     *
     * @param scenicId
     */
    void deleteConfigByScenicId(Long scenicId);

    List<ScenicAppVO> appList(ScenicReqQuery scenicReqQuery);

    ScenicRespVO getAppById(Long id);

    /**
     * 通过经纬度计算景区距离
     *
     * @param scenicIndexVO
     * @return
     */
    List<ScenicAppVO> scenicListByLnLa(ScenicIndexVO scenicIndexVO);
}
