# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
import attr
import typing
import io


@attr.s
class CheckUserIsInApplicationPaidScopeReq(object):
    open_id: str = attr.ib(
        default="", metadata={"req_type": "query"}
    )  # 用户 open_id，open_id 和 user_id 两个参数必须包含其一，若同时传入取 open_id
    user_id: str = attr.ib(
        default="", metadata={"req_type": "query"}
    )  # 用户 user_id，user_id 和 open_id 两个参数必须包含其一，若同时传入取 open_id


@attr.s
class CheckUserIsInApplicationPaidScopeResp(object):
    status: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 用户是否在开通范围中，"valid" -该用户在开通范围中，"not_in_scope"-该用户不在开通范围中，"no_active_license"-企业未购买任何价格方案或价格方案已过期，"exceeds_maximum_limit"-企业当前配置的付费功能开通范围人数超出限制，需提醒管理员调整
    price_plan_id: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 租户当前使用的「价格方案ID」，对应开发者后台中「价格方案配置」中的「价格方案」
    is_trial: bool = attr.ib(
        factory=lambda: bool(), metadata={"req_type": "json"}
    )  # 是否为试用版本，true-是试用版本；false-非试用版本
    service_stop_time: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 租户当前有生效价格方案时表示价格方案的到期时间，为时间unix时间戳


def _gen_check_user_is_in_application_paid_scope_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=CheckUserIsInApplicationPaidScopeResp,
        scope="Application",
        api="CheckUserIsInApplicationPaidScope",
        method="GET",
        url="https://open.feishu.cn/open-apis/pay/v1/paid_scope/check_user",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
    )
