# generated by datamodel-codegen:
#   filename:  AlgoHelper/AlgoParamTypes.json

from __future__ import annotations

from typing import List, Union

from msgspec import Struct

from .. import definitions


class AlgoParamTypes(Struct, omit_defaults=True):
    """
    this is used to coerce creation of the params in the schema.json
    """

    spreader: List[Union[definitions.SpreaderParams, definitions.SpreaderStatus]]

    # Constructor that takes all field titles as arguments for convenience
    @classmethod
    def new(
        cls,
        spreader: List[Union[definitions.SpreaderParams, definitions.SpreaderStatus]],
    ):
        return cls(
            spreader,
        )

    def __str__(self) -> str:
        return f"AlgoParamTypes(spreader={self.spreader})"
