feat(sub): subscription logic (pre release)

This commit is contained in:
2026-08-02 13:23:50 +07:00
parent cde8ce28f5
commit 24f857ef1b
15 changed files with 469 additions and 42 deletions

View File

@@ -0,0 +1,23 @@
from typing import TYPE_CHECKING
from sqlalchemy import INTEGER, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship
from db.base import Base
if TYPE_CHECKING:
from db.models import Subscription
class SubscriptionAddon(Base):
__tablename__ = "subscription_addons"
id: Mapped[int] = mapped_column(
INTEGER, nullable=False, unique=True, autoincrement=True, primary_key=True
)
subscription_id: Mapped[int] = mapped_column(ForeignKey("subscriptions.id"), nullable=False)
addon_id: Mapped[str] = mapped_column(ForeignKey("addons.id"), nullable=False)
subscription: Mapped["Subscription"] = relationship(
"Subscription", back_populates="addons", lazy="selectin"
)