Files
litestar-machines-test/app/domain/fiscal_payment_mapping.py
Eden Kirin c7060c7ed3 Asset items
2023-08-27 23:13:24 +02:00

41 lines
1.3 KiB
Python

from typing import Annotated, Optional
import sqlalchemy
from litestar.contrib.sqlalchemy.base import BigIntBase
from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
from litestar.dto import DTOConfig
from sqlalchemy.orm import Mapped, mapped_column
from app.domain.enums import FiscalModuleEnum, PaymentTypeEnum
from app.lib import service
from app.lib.filter_repository import FilterRepository
class FiscalPaymentMapping(BigIntBase):
__tablename__ = "fiscal_payment_mapping" # type: ignore[assignment]
fiscal_module: Mapped[FiscalModuleEnum] = mapped_column(
sqlalchemy.Enum(FiscalModuleEnum, name="fiscal_module_enum")
)
code: Mapped[str]
payment_type: Mapped[PaymentTypeEnum] = mapped_column(
sqlalchemy.Enum(PaymentTypeEnum, name="televend_payment_type")
)
operation_mode_code: Mapped[int]
payment_device_code: Mapped[Optional[int]]
class Repository(FilterRepository[FiscalPaymentMapping]):
model_type = FiscalPaymentMapping
class Service(service.Service[FiscalPaymentMapping]):
repository_type = Repository
write_config = DTOConfig(exclude={"id"})
FiscalPaymentMappingWriteDTO = SQLAlchemyDTO[
Annotated[FiscalPaymentMapping, write_config]
]
FiscalPaymentMappingReadDTO = SQLAlchemyDTO[FiscalPaymentMapping]