package com.yd.dal.mapper.customer;

import com.yd.api.practitioner.vo.practitionerCustomer.CustomerHolder;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryCustomerInsuredListRequestVO;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryPolicyListByHolderCustomerIdRequestVO;
import com.yd.dal.entity.customer.AclPolicyholder;
import com.yd.dal.entity.order.CustomerPolicyInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AclPolicyholderMapper {
    int deleteByPrimaryKey(Long id);

    int insert(AclPolicyholder record);

    int insertSelective(AclPolicyholder record);

    AclPolicyholder selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(AclPolicyholder record);

    int updateByPrimaryKeyWithBLOBs(AclPolicyholder record);

    int updateByPrimaryKey(AclPolicyholder record);

    List<AclPolicyholder> findByOrderId(Long orderId);

    List<CustomerHolder> queryInsuredListByHolderCustomerId(QueryCustomerInsuredListRequestVO requestVO);

    List<CustomerHolder> queryThisPractitiionerAllPolicyHolderList(List<Long> orderIdList);

    List<CustomerPolicyInfo> queryPolicyListByHolderCustomerId(QueryPolicyListByHolderCustomerIdRequestVO requestVO);

    CustomerHolder queryUsefulInfo(@Param("customerId") Long customerId, @Param("type") int holderType);
}