invoices, order handling, db updates

This commit is contained in:
2026-02-14 23:09:21 +07:00
parent a3aaafd7ac
commit 50b1a8f80c
28 changed files with 508 additions and 44 deletions

View File

@@ -1,4 +1,13 @@
from .orders import Order, OrderItem, OrderStatus
from .products import Product, Category
from .invoices import Invoice, InvoiceStatus
__all__ = ["Order", "OrderItem", "OrderStatus", "Product", "Category"]
__all__ = [
"Order",
"OrderItem",
"OrderStatus",
"Product",
"Category",
"Invoice",
"InvoiceStatus",
]

24
db/models/invoices.py Normal file
View File

@@ -0,0 +1,24 @@
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"
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())