# Code generated by lark suite oapi sdk gen

from typing import List, Dict, Any
from ....utils.dt import to_json_decorator
import attr


@to_json_decorator
@attr.s
class UserAccessTokenInfo:
    access_token = attr.ib(type=str, default=None, metadata={"json": "access_token"})
    token_type = attr.ib(type=str, default=None, metadata={"json": "token_type"})
    expires_in = attr.ib(type=int, default=None, metadata={"json": "expires_in"})
    name = attr.ib(type=str, default=None, metadata={"json": "name"})
    en_name = attr.ib(type=str, default=None, metadata={"json": "en_name"})
    avatar_url = attr.ib(type=str, default=None, metadata={"json": "avatar_url"})
    avatar_thumb = attr.ib(type=str, default=None, metadata={"json": "avatar_thumb"})
    avatar_middle = attr.ib(type=str, default=None, metadata={"json": "avatar_middle"})
    avatar_big = attr.ib(type=str, default=None, metadata={"json": "avatar_big"})
    open_id = attr.ib(type=str, default=None, metadata={"json": "open_id"})
    union_id = attr.ib(type=str, default=None, metadata={"json": "union_id"})
    email = attr.ib(type=str, default=None, metadata={"json": "email"})
    user_id = attr.ib(type=str, default=None, metadata={"json": "user_id"})
    mobile = attr.ib(type=str, default=None, metadata={"json": "mobile"})
    tenant_key = attr.ib(type=str, default=None, metadata={"json": "tenant_key"})
    refresh_expires_in = attr.ib(
        type=int, default=None, metadata={"json": "refresh_expires_in"}
    )
    refresh_token = attr.ib(type=str, default=None, metadata={"json": "refresh_token"})


@to_json_decorator
@attr.s
class UserInfo:
    name = attr.ib(type=str, default=None, metadata={"json": "name"})
    en_name = attr.ib(type=str, default=None, metadata={"json": "en_name"})
    avatar_url = attr.ib(type=str, default=None, metadata={"json": "avatar_url"})
    avatar_thumb = attr.ib(type=str, default=None, metadata={"json": "avatar_thumb"})
    avatar_middle = attr.ib(type=str, default=None, metadata={"json": "avatar_middle"})
    avatar_big = attr.ib(type=str, default=None, metadata={"json": "avatar_big"})
    open_id = attr.ib(type=str, default=None, metadata={"json": "open_id"})
    union_id = attr.ib(type=str, default=None, metadata={"json": "union_id"})
    email = attr.ib(type=str, default=None, metadata={"json": "email"})
    user_id = attr.ib(type=str, default=None, metadata={"json": "user_id"})
    mobile = attr.ib(type=str, default=None, metadata={"json": "mobile"})
    tenant_key = attr.ib(type=str, default=None, metadata={"json": "tenant_key"})


@to_json_decorator
@attr.s
class AuthenAccessTokenReqBody:
    grant_type = attr.ib(type=str, default=None, metadata={"json": "grant_type"})
    code = attr.ib(type=str, default=None, metadata={"json": "code"})


@to_json_decorator
@attr.s
class AuthenRefreshAccessTokenReqBody:
    grant_type = attr.ib(type=str, default=None, metadata={"json": "grant_type"})
    refresh_token = attr.ib(type=str, default=None, metadata={"json": "refresh_token"})
