package com.zhongshu.card.server.core.dao.pay;

import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
import com.github.microservice.types.payment.PaymentChannelType;
import com.zhongshu.card.client.type.payAccount.PayAccountLevel;
import com.zhongshu.card.server.core.dao.pay.extend.PayAccountDaoExtend;
import com.zhongshu.card.server.core.domain.pay.PayAccount;

public interface PayAccountDao extends MongoDao<PayAccount>, PayAccountDaoExtend {

    PayAccount findTopByProjectOidAndUserIdAndLevelAndPaymentChannelType(String projectOid, String userId, PayAccountLevel level, PaymentChannelType paymentChannelType);

    PayAccount findTopByProjectOidAndLevel(String projectOid, PayAccountLevel level);

    PayAccount findTopByProjectOidAndLevelAndPaymentChannelType(String projectOid, PayAccountLevel level, PaymentChannelType channelType);

    PayAccount findTopByProjectOidAndUserIdAndLevel(String projectOid, String userId, PayAccountLevel level);

    PayAccount findTopByProjectOidAndOidAndLevel(String projectOid, String oid, PayAccountLevel level);

    PayAccount findTopByProjectOidAndOidAndLevelAndPaymentChannelType(String projectOid, String oid, PayAccountLevel level, PaymentChannelType channelType);

}