"""Auto-generated ECM model classes for cabinet "Unittest".

DO NOT EDIT — regenerate with generate_ecm_models.py.
"""

from enum import Enum

from datetime import date, datetime

from ecmind_blue_client.ecm.model import (
    ECMDocumentModel,
    ECMField,
    ECMFolderModel,
    ECMRegisterModel,
    ECMTableField,
    ECMTableRowModel,
)


class Unittest_TableFieldRow(ECMTableRowModel):
    TableCol1: ECMField[str] = ECMField(str, default=None)
    TableCol2: ECMField[int] = ECMField(int, default=None)
    TableCol3: ECMField[date] = ECMField(date, default=None)
    TableCol4: ECMField[float] = ECMField(float, default=None)

class Unittest(ECMFolderModel):
    _internal_name_ = "Unittest"

    OSID: ECMField[int] = ECMField(int, default=None)
    StringField: ECMField[str] = ECMField(str, default=None)
    DateField: ECMField[date] = ECMField(date, default=None)
    DateTimeField: ECMField[datetime] = ECMField(datetime, default=None)
    DoubleField: ECMField[float] = ECMField(float, default=None)
    CheckboxField: ECMField[bool] = ECMField(bool, default=None)
    RadioField1: ECMField[int] = ECMField(int, default=None)
    RadioField2: ECMField[int] = ECMField(int, default=None)
    TableField: ECMTableField[Unittest_TableFieldRow] = ECMTableField(default_factory=list)


class UnittestReg_TableFieldRow(ECMTableRowModel):
    TableCol1: ECMField[str] = ECMField(str, default=None)
    TableCol2: ECMField[int] = ECMField(int, default=None)
    TableCol3: ECMField[date] = ECMField(date, default=None)
    TableCol4: ECMField[float] = ECMField(float, default=None)

class UnittestReg(ECMRegisterModel):
    _internal_name_ = "UnittestReg"

    OSID: ECMField[int] = ECMField(int, default=None)
    StringField: ECMField[str] = ECMField(str, default=None)
    DateField: ECMField[date] = ECMField(date, default=None)
    DateTimeField: ECMField[datetime] = ECMField(datetime, default=None)
    DoubleField: ECMField[float] = ECMField(float, default=None)
    CheckboxField: ECMField[bool] = ECMField(bool, default=None)
    RadioField1: ECMField[int] = ECMField(int, default=None)
    RadioField2: ECMField[int] = ECMField(int, default=None)
    TableField: ECMTableField[UnittestReg_TableFieldRow] = ECMTableField(default_factory=list)


class UnittestReg2_TableFieldRow(ECMTableRowModel):
    TableCol1: ECMField[str] = ECMField(str, default=None)
    TableCol2: ECMField[int] = ECMField(int, default=None)
    TableCol3: ECMField[date] = ECMField(date, default=None)
    TableCol4: ECMField[float] = ECMField(float, default=None)

class UnittestReg2(ECMRegisterModel):
    _internal_name_ = "UnittestReg2"

    OSID: ECMField[int] = ECMField(int, default=None)
    StringField: ECMField[str] = ECMField(str, default=None)
    DateField: ECMField[date] = ECMField(date, default=None)
    DateTimeField: ECMField[datetime] = ECMField(datetime, default=None)
    DoubleField: ECMField[float] = ECMField(float, default=None)
    CheckboxField: ECMField[bool] = ECMField(bool, default=None)
    RadioField1: ECMField[int] = ECMField(int, default=None)
    RadioField2: ECMField[int] = ECMField(int, default=None)
    TableField: ECMTableField[UnittestReg2_TableFieldRow] = ECMTableField(default_factory=list)


class UnittestDoc_ListAddonFieldEnum(str, Enum):
    DOG = "Dog"
    CAT = "Cat"
    MOUSE = "Mouse"
    V_000 = "000"

class UnittestDoc_TreeAddonFieldEnum(str, Enum):
    ANIMALS = "Animals"
    MAMMALS = "Mammals"
    HUMAN = "Human"
    HEDGEHOG = "Hedgehog"
    RAPTILES = "Raptiles"
    ALLIGATOR = "Alligator"
    TURTLE = "Turtle"
    PLANTS = "Plants"
    MOSS = "Moss"
    TREES = "Trees"

class UnittestDoc_TableFieldRow(ECMTableRowModel):
    TableCol1: ECMField[str] = ECMField(str, default=None)
    TableCol2: ECMField[int] = ECMField(int, default=None)
    TableCol3: ECMField[date] = ECMField(date, default=None)
    TableCol4: ECMField[float] = ECMField(float, default=None)

class UnittestDoc_EmptyTableRow(ECMTableRowModel):
    pass

class UnittestDoc(ECMDocumentModel):
    _internal_name_ = "UnittestDoc"

    OSID: ECMField[int] = ECMField(int, default=None)
    StringField: ECMField[str] = ECMField(str, default=None)
    DateField: ECMField[date] = ECMField(date, default=None)
    DateTimeField: ECMField[datetime] = ECMField(datetime, default=None)
    DoubleField: ECMField[float] = ECMField(float, default=None)
    CheckboxField: ECMField[bool] = ECMField(bool, default=None)
    RadioField1: ECMField[int] = ECMField(int, default=None)
    RadioField2: ECMField[int] = ECMField(int, default=None)
    DatabaseAddonField: ECMField[str] = ECMField(str, default=None)
    ListAddonField: ECMField[UnittestDoc_ListAddonFieldEnum] = ECMField(UnittestDoc_ListAddonFieldEnum, default=None)
    TreeAddonField: ECMField[UnittestDoc_TreeAddonFieldEnum] = ECMField(UnittestDoc_TreeAddonFieldEnum, default=None)
    TableField: ECMTableField[UnittestDoc_TableFieldRow] = ECMTableField(default_factory=list)
    EmptyTable: ECMTableField[UnittestDoc_EmptyTableRow] = ECMTableField(default_factory=list)
