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"

[((196, 244), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'required': True}"}), "(default=None, metadata={'required': True})\n", (201, 244), False, 'from dataclasses import dataclass, field\n'), ((318, 369), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute'}"}), "(default=None, metadata={'type': 'Attribute'})\n", (323, 369), False, 'from dataclasses import dataclass, field\n'), ((478, 544), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), "(default=None, metadata={'type': 'Element', 'namespace': ''})\n", (483, 544), False, 'from dataclasses import dataclass, field\n'), ((631, 697), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), "(default=None, metadata={'type': 'Element', 'namespace': ''})\n", (636, 697), False, 'from dataclasses import dataclass, field\n'), ((783, 849), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), "(default=None, metadata={'type': 'Element', 'namespace': ''})\n", (788, 849), False, 'from dataclasses import dataclass, field\n'), ((933, 999), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': ''}"}), "(default=None, metadata={'type': 'Element', 'namespace': ''})\n", (938, 999), False, 'from dataclasses import dataclass, field\n'), ((1088, 1176), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Element', 'namespace': '', 'required': True}"}), "(default=None, metadata={'type': 'Element', 'namespace': '',\n    'required': True})\n", (1093, 1176), False, 'from dataclasses import dataclass, field\n'), ((1266, 1335), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute', 'required': True}"}), "(default=None, metadata={'type': 'Attribute', 'required': True})\n", (1271, 1335), False, 'from dataclasses import dataclass, field\n'), ((1426, 1477), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'type': 'Attribute'}"}), "(default=None, metadata={'type': 'Attribute'})\n", (1431, 1477), False, 'from dataclasses import dataclass, field\n'), ((1557, 1627), 'dataclasses.field', 'field', ([], {'default': 'None', 'metadata': "{'name': 'effDate', 'type': 'Attribute'}"}), "(default=None, metadata={'name': 'effDate', 'type': 'Attribute'})\n", (1562, 1627), False, 'from dataclasses import dataclass, field\n')]