from dataclasses import dataclass, field
from decimal import Decimal
from typing import Optional
from xsdata.models.datatype import XmlDate


@dataclass
class SizeType:
    value: Optional[int] = field(
        default=None,
        metadata={
            "required": True,
        }
    )
    system: Optional[str] = field(
        default=None,
        metadata={
            "type": "Attribute",
        }
    )


@dataclass
class ShirtType:
    description: Optional[str] = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "",
        }
    )
    comment: Optional[str] = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "",
        }
    )
    number: Optional[int] = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "",
        }
    )
    name: Optional[str] = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "",
        }
    )
    size: Optional[SizeType] = field(
        default=None,
        metadata={
            "type": "Element",
            "namespace": "",
            "required": True,
        }
    )
    id: Optional[str] = field(
        default=None,
        metadata={
            "type": "Attribute",
            "required": True,
        }
    )
    version: Optional[Decimal] = field(
        default=None,
        metadata={
            "type": "Attribute",
        }
    )
    eff_date: Optional[XmlDate] = field(
        default=None,
        metadata={
            "name": "effDate",
            "type": "Attribute",
        }
    )


@dataclass
class Shirt(ShirtType):
    class Meta:
        name = "shirt"

[(9, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'required': True}"}), False, 'from dataclasses import dataclass, field\n'), (15, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute'}"}), False, 'from dataclasses import dataclass, field\n'), (25, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), False, 'from dataclasses import dataclass, field\n'), (32, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), False, 'from dataclasses import dataclass, field\n'), (39, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), False, 'from dataclasses import dataclass, field\n'), (46, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), False, 'from dataclasses import dataclass, field\n'), (53, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': '', 'required': True}"}), False, 'from dataclasses import dataclass, field\n'), (61, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute', 'required': True}"}), False, 'from dataclasses import dataclass, field\n'), (68, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute'}"}), False, 'from dataclasses import dataclass, field\n'), (74, 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'name': 'effDate', 'type': 'Attribute'}"}), False, 'from dataclasses import dataclass, field\n')]