package com.ycwl.basic.service.pc;

import com.github.pagehelper.PageInfo;
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
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.pay.adapter.IPayAdapter;
import com.ycwl.basic.storage.adapters.IStorageAdapter;
import com.ycwl.basic.utils.ApiResponse;

import java.util.List;

/**
 * @Author：longbinbin
 * @Date：2024/12/3 15:22
 */
public interface ScenicService {
    ApiResponse<PageInfo<ScenicRespVO>> pageQuery(ScenicReqQuery scenicReqQuery);
    ApiResponse<List<ScenicRespVO>> list(ScenicReqQuery scenicReqQuery);
    ApiResponse<ScenicRespVO> getById(Long id);
    ApiResponse<Boolean> add(ScenicAddOrUpdateReq scenicAddOrUpdateReq);
    ApiResponse<Boolean> deleteById(Long id);
    ApiResponse<Boolean> update(ScenicAddOrUpdateReq scenicAddOrUpdateReq);
    ApiResponse<Boolean> updateStatus(Long id);
    ApiResponse<Boolean> addConfig(ScenicConfigEntity scenicConfig);
    /**
     * 修改景区配置
     * @param scenicConfig
     * @return
     */
    ApiResponse<Boolean> updateConfigById(ScenicConfigEntity scenicConfig);

    ScenicConfigEntity getConfig(Long id);
    void saveConfig(Long configId, ScenicConfigEntity config);

    IStorageAdapter getScenicStorageAdapter(Long scenicId);

    IStorageAdapter getScenicTmpStorageAdapter(Long scenicId);

    IStorageAdapter getScenicLocalStorageAdapter(Long scenicId);

    IFaceBodyAdapter getScenicFaceBodyAdapter(Long scenicId);

    IPayAdapter getScenicPayAdapter(Long scenicId);
}
