# app/api/wechat.py
from fastapi import APIRouter, Query
# from app.controllers import wechat_sdk
# from app.controllers.weixin_script import WeixinUser_controller
from some_sdk.services.binder import xy_client
from some_sdk.wk_weixin_sdk import auth
from some_sdk.wk_weixin_sdk.apis import corp_group, extern_user
from app.http_base import unified_resp


import logging
logger = logging.getLogger(__name__)

router = APIRouter()

# @router.get("/app-config")
# @unified_resp
# def get_config():
#     return wechat_sdk.get_base_config()

# 获取企业身份签名
@router.get("/jssdk-config", summary="获取企业微信 企业身份 JS-SDK 配置")
@unified_resp
async def jssdk_config(type: str = Query(..., description="类型"), url: str = Query(..., description="前端当前页面 URL（不含 #）")):
    return await auth.get_jssdk_config(type, url)

@router.get("/get_access_user_info", summary="获取访问用户身份")
@unified_resp
async def get_access_user_info(code: str = Query(..., description="code为企业成员点击了构造链接之后附加在url中参数")):
    return await auth.get_access_user_info(code)

@router.get("/get_external_group_chat_info", summary="获取外部群聊详细信息")
@unified_resp
async def get_external_group_chat_info(chat_id: str = Query(..., description="群对话ID")):
    return await corp_group.get_external_group_chat_info(xy_client, chat_id)

@router.get("/get_external_user_chat_info", summary="获取外部客户详细信息")
@unified_resp
async def get_external_user_chat_info(user_id: str = Query(..., description="为外部客户的userid")):
    return await extern_user.get_external_user_chat_info(user_id)

# @router.get("/get_external_user_list", summary="获取指定用户的所有外部客户")
# @unified_resp
# async def get_external_user_list(user_id: str = Query(..., description="企业成员的userid")):
#     return await wechat_sdk.get_external_user_list(user_id)

# @router.get("/get_corp_user_id_list", summary="获取指公司所有员工")
# @unified_resp
# async def get_corp_user_id_list():
#     return await wechat_sdk.get_corp_user_id_list()

# @router.get("/get_follow_user_list", summary="获取配置了客户联系功能的成员列表")
# @unified_resp
# async def get_follow_user_list():
#     return await wechat_sdk.get_follow_user_list()

# @router.get("/get_follow_user_list", summary="获取配置了客户联系功能的成员列表")
# @unified_resp
# async def get_follow_user_list():
#     return await wechat_sdk.get_follow_user_list()

# @router.get("/get_groupchat_list", summary="获取指定用户的客户群列表")
# @unified_resp
# async def get_groupchat_list():
#     return await wechat_sdk.get_groupchat_list(['XiYinShuo'])

# @router.get("/update_all_user", summary="同步所有用户信息")
# @unified_resp
# async def update_all_user():
#     return await WeixinUser_controller.update_all_user()

# @router.get("/update_all_user_by_group_chat", summary="通过群聊同步用户信息")
# @unified_resp
# async def update_all_user_by_group_chat():
#     return await WeixinUser_controller.update_all_user_by_group_chat()

# @router.get("/convert_extenal_userid", summary="通过群聊同步用户信息")
# @unified_resp
# async def convert_extenal_userid():
#     return await wechat_sdk.convert_extenal_userid('wmKgOaDQAA37oxGfhBFCAFPqmICXNAZA')

# @router.get("/update_all_user_by_xingyun", summary="通过外部系统同步用户信息")
# @unified_resp
# async def update_all_user_by_xingyun():
#     return await WeixinUser_controller.update_all_user_by_xingyun()

# @router.get("/convert_extenal_userid", summary="转换三方应用的extenal_userid")
# @unified_resp
# async def convert_extenal_userid(user_id: str = Query(..., description="客户的userid")):
#     return await wechat_sdk.convert_extenal_userid(user_id)

# @router.get("/get_external_contact_list", summary="获取已服务的外部联系人")
# @unified_resp
# async def get_external_contact_list(cursor: Optional[str] = Query(None, description="客户的userid")):
#     return await wechat_sdk.get_external_contact_list(cursor)
