"""Pydantic models for Data Type Resources."""
from datetime import datetime
from typing import ClassVar
from pydantic import AliasChoices, Field
from .base import Resource, ValueClass
[docs]
class _DataType(Resource):
"""Base class for DataType resources."""
attr_seq: ClassVar[str] = 'data_type_seq'
data_type_seq: str | None = None
description: str | None = None
create_date: datetime | None = Field(None, exclude=True, repr=False)
created_by: str | None = Field(None, exclude=True, repr=False)
modified_by: str | None = Field(None, exclude=True, repr=False)
not_allow_update: bool | None = None
[docs]
class CreditType(_DataType):
"""Credit Type."""
attr_endpoint: ClassVar[str] = 'api/v2/creditTypes'
credit_type_id: str = Field(validation_alias=AliasChoices('creditTypeId', 'id'))
[docs]
class EarningCode(_DataType):
"""Earning Code."""
attr_endpoint: ClassVar[str] = 'api/v2/earningCodes'
earning_code_id: str = Field(validation_alias=AliasChoices('earningCodeId', 'id'))
[docs]
class EarningGroup(_DataType):
"""Earning Group."""
attr_endpoint: ClassVar[str] = 'api/v2/earningGroups'
earning_group_id: str = Field(validation_alias=AliasChoices('earningGroupId', 'id'))
[docs]
class EventType(_DataType):
"""Event Type."""
attr_endpoint: ClassVar[str] = 'api/v2/eventTypes'
event_type_id: str = Field(validation_alias=AliasChoices('eventTypeId', 'id'))
[docs]
class FixedValueType(_DataType):
"""Fixed Value Type."""
attr_endpoint: ClassVar[str] = 'api/v2/fixedValueTypes'
fixed_value_type_id: str = Field(
validation_alias=AliasChoices('fixedValueTypeId', 'id'),
)
[docs]
class PositionRelationType(_DataType):
"""Position Relation Type."""
attr_endpoint: ClassVar[str] = 'api/v2/positionRelationTypes'
name: str
[docs]
class Reason(_DataType):
"""Reason."""
attr_endpoint: ClassVar[str] = 'api/v2/reasons'
reason_id: str = Field(validation_alias=AliasChoices('reasonId', 'id'))
[docs]
class StatusCode(_DataType):
"""Status Code."""
attr_endpoint: ClassVar[str] = 'api/v2/statusCodes'
status: str
name: str | None = None
type: str | None = None
is_active: bool = True
[docs]
class UnitType(_DataType):
"""Unit Type."""
attr_endpoint: ClassVar[str] = 'api/v2/unitTypes'
unit_type_seq: str
name: str
symbol: str | None = None
scale: int
reporting_scale: int
position_of_symbol: int
currency_locale: str | None = None
value_class: ValueClass
formatting: str | None = None