# Code generated by lark suite oapi sdk gen

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


@to_json_decorator
@attr.s
class UserId:
    user_id = attr.ib(type=str, default=None, metadata={"json": "user_id"})
    open_id = attr.ib(type=str, default=None, metadata={"json": "open_id"})
    union_id = attr.ib(type=str, default=None, metadata={"json": "union_id"})


@to_json_decorator
@attr.s
class EventAwemeUser:
    user_id = attr.ib(type=UserId, default=None, metadata={"json": "user_id"})
    aweme_user_id = attr.ib(type=str, default=None, metadata={"json": "aweme_user_id"})
    is_binded = attr.ib(type=bool, default=None, metadata={"json": "is_binded"})


@to_json_decorator
@attr.s
class AwemeUser:
    __int_to_string_fields__ = attr.ib(type=List[str], default=["aweme_user_id"])
    aweme_user_id = attr.ib(type=int, default=None, metadata={"json": "aweme_user_id"})
    user_id = attr.ib(type=str, default=None, metadata={"json": "user_id"})
    is_binded = attr.ib(type=bool, default=None, metadata={"json": "is_binded"})


@attr.s
class AwemeUserGetBindInfoResult:
    aweme_user = attr.ib(type=AwemeUser, default=None, metadata={"json": "aweme_user"})


@attr.s
class AwemeUserBindedAccountEventData:
    event_aweme_user = attr.ib(
        type=EventAwemeUser, default=None, metadata={"json": "event_aweme_user"}
    )


@attr.s
class AwemeUserBindedAccountEvent(BaseEventV2):
    event = attr.ib(type=AwemeUserBindedAccountEventData, default=None)
