package com.sino.mci.channel.wecom.sync;

import java.util.List;

/**
 * 企业微信通讯录与群聊同步客户端。
 *
 * <p>封装企微「获取部门列表 / 部门成员详情 / 外部联系人列表 / 外部联系人详情 /
 * 客户群列表 / 客户群详情」等接口调用。实际生产环境可替换为基于 {@code WxCpService}
 * 的真实实现；默认提供 mock 实现用于开发/测试。</p>
 */
public interface WeComSyncClient {

    /**
     * 同步企业通讯录（部门 + 内部成员）。
     *
     * @param config 企微配置
     * @return 联系人列表
     */
    List<WeComContact> syncEnterpriseContacts(WeComSyncConfig config);

    /**
     * 同步某个成员的客户（外部联系人）。
     *
     * @param config 企微配置
     * @param userId 成员 userId
     * @return 联系人列表
     */
    List<WeComContact> syncAccountContacts(WeComSyncConfig config, String userId);

    /**
     * 同步某个成员的客户群。
     *
     * @param config 企微配置
     * @param userId 成员 userId
     * @return 群聊列表
     */
    List<WeComConversation> syncAccountConversations(WeComSyncConfig config, String userId);
}
