# Code generated by Lark OpenAPI.

from typing import Optional

from lark_oapi.core.construct import init
from lark_oapi.event.context import EventContext
from .approval_config_event import ApprovalConfigEvent
from .reserve_scope_config_event import ReserveScopeConfigEvent
from .time_config import TimeConfig


class P2VcReserveConfigUpdatedV1Data(object):
    _types = {
        "scope_id": str,
        "scope_type": int,
        "approve_config": ApprovalConfigEvent,
        "time_config": TimeConfig,
        "reserve_scope_config": ReserveScopeConfigEvent,
    }

    def __init__(self, d=None):
        self.scope_id: Optional[str] = None
        self.scope_type: Optional[int] = None
        self.approve_config: Optional[ApprovalConfigEvent] = None
        self.time_config: Optional[TimeConfig] = None
        self.reserve_scope_config: Optional[ReserveScopeConfigEvent] = None
        init(self, d, self._types)


class P2VcReserveConfigUpdatedV1(EventContext):
    _types = {
        "event": P2VcReserveConfigUpdatedV1Data
    }

    def __init__(self, d=None):
        super().__init__(d)
        self._types.update(super()._types)
        self.event: Optional[P2VcReserveConfigUpdatedV1Data] = None
        init(self, d, self._types)
