# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: google_impl_behavior_equivalence.proto
# plugin: python-betterproto
# This file has been @generated

__all__ = (
    "Foo",
    "Test",
    "Spam",
    "Request",
    "Empty",
)


from datetime import datetime
from typing import (
    Optional,
)

from pydantic import model_validator
from pydantic.dataclasses import dataclass

import betterproto_fw


@dataclass(eq=False, repr=False, config={"extra": "forbid"})
class Foo(betterproto_fw.Message):
    """ """

    bar: int = betterproto_fw.int64_field(1)
    """
    
    """


@dataclass(eq=False, repr=False, config={"extra": "forbid"})
class Test(betterproto_fw.Message):
    """ """

    string: Optional[str] = betterproto_fw.string_field(1, optional=True, group="group")
    """
    
    """

    integer: Optional[int] = betterproto_fw.int64_field(2, optional=True, group="group")
    """
    
    """

    foo: Optional["Foo"] = betterproto_fw.message_field(3, optional=True, group="group")
    """
    
    """

    @model_validator(mode="after")
    def check_oneof(cls, values):
        return cls._validate_field_groups(values)


@dataclass(eq=False, repr=False, config={"extra": "forbid"})
class Spam(betterproto_fw.Message):
    """ """

    ts: datetime = betterproto_fw.message_field(1)
    """
    
    """


@dataclass(eq=False, repr=False, config={"extra": "forbid"})
class Request(betterproto_fw.Message):
    """ """

    foo: "Empty" = betterproto_fw.message_field(1)
    """
    
    """


@dataclass(eq=False, repr=False, config={"extra": "forbid"})
class Empty(betterproto_fw.Message):
    """ """

    pass
