from sqlalchemy import ( BigInteger, Boolean, Column, DateTime, Enum, ForeignKey, Integer, Numeric, String, Table, Text, ) from televend_core.databases.televend_repositories.cashbag_conform.enum import ( CashBagConformStatusEnum, ) from televend_core.databases.televend_repositories.table_meta import metadata_obj CASHBAG_CONFORM_TABLE = Table( "cashbag_conforms", metadata_obj, Column("id", Integer, primary_key=True, autoincrement=True), Column("alive", Boolean, nullable=False), Column("count_coins", Numeric(12, 4), nullable=False), Column("count_bills", Numeric(12, 4), nullable=False), Column("tokens_number", Numeric(12, 4), nullable=False), Column("tokens_total", Numeric(12, 4), nullable=False), Column("count_timestamp", DateTime(timezone=True)), Column("count_receive_timestamp", DateTime(timezone=True)), Column("collect", Numeric(12, 4), nullable=False), Column("collect_timestamp", DateTime(timezone=True)), Column("diff", Numeric(12, 4), nullable=False), Column( "author_info_id", Integer, ForeignKey("author_infos.id", deferrable=True, initially="DEFERRED"), nullable=False, unique=True, ), Column( "cashbag_id", Integer, ForeignKey("cashbags.id", deferrable=True, initially="DEFERRED"), ), Column( "cashflow_collection_id", Integer, ForeignKey("cashflow_collections.id", deferrable=True, initially="DEFERRED"), ), Column( "collect_user_id", Integer, ForeignKey("custom_users.user_ptr_id", deferrable=True, initially="DEFERRED"), ), Column( "count_user_id", Integer, ForeignKey("custom_users.user_ptr_id", deferrable=True, initially="DEFERRED"), ), Column( "machine_id", Integer, ForeignKey("machines.id", deferrable=True, initially="DEFERRED"), ), Column("external_route_id", BigInteger), Column("external_route_name", String(255)), Column("no_cashbag_reason", Integer), Column("description", Text, nullable=True), Column( "status", Enum( *CashBagConformStatusEnum.to_value_list(), name="cashbag_conform_status_enum", ), nullable=True, ), )