package com.yd.csf.service.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.service.dto.*;
import com.yd.csf.service.model.Policy;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.csf.service.vo.PolicyVO;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author Zhang Jianan
* @description 针对表【policy(保单表)】的数据库操作Service
* @createDate 2025-09-18 15:07:25
*/
public interface PolicyService extends IService<Policy> {

    QueryWrapper<Policy> getQueryWrapper(PolicyQueryRequest policyQueryRequest);

    Page<PolicyVO> getPolicyVOPage(Page<Policy> policyPage);

    Boolean updatePolicy(PolicyUpdateRequest policyUpdateRequest);

    List<Policy> queryList(QueryPolicyDto dto);

    Policy queryOne(String policyNo);

    List<QueryPolicyAndBrokerDto> queryPolicyBrokerList(String policyNo);

    List<PolicyProductInfo> getPolicyProductInfo(List<String> productLaunchBizIdList);

    Map<String, PolicyProductInfo> getPolicyProductInfoMap(Collection<String> productLaunchBizIdList);

    Map<String, Policy> queryPolicyMap(Collection<String> policyNoList);
}
