26 lines
804 B
Python
26 lines
804 B
Python
from datetime import datetime
|
|
from enum import Enum as E_cls
|
|
from sqlalchemy import DateTime, func, Enum
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
from sqlalchemy.dialects.postgresql import BIGINT
|
|
|
|
from db.base import Base
|
|
|
|
|
|
class InvoiceStatus(E_cls):
|
|
PENDING = "PENDING"
|
|
RECEIVED = "RECEIVED"
|
|
PAID = "PAID"
|
|
EXPIRED = "EXPIRED"
|
|
|
|
|
|
class Invoice(Base):
|
|
__tablename__ = "invoices"
|
|
|
|
id: Mapped[int] = mapped_column(autoincrement=True, primary_key=True)
|
|
creator_id: Mapped[int] = mapped_column(BIGINT)
|
|
amount: Mapped[int] = mapped_column(BIGINT)
|
|
status: Mapped[InvoiceStatus] = mapped_column(Enum(InvoiceStatus))
|
|
inline_message_id: Mapped[str] = mapped_column(nullable=True)
|
|
created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
|