Fix category pricing to ignore full squads

This commit is contained in:
Egor
2025-11-09 05:33:13 +03:00
parent e9f4fd8007
commit b591844c4e
9 changed files with 803 additions and 23 deletions
+22 -2
View File
@@ -1281,6 +1281,22 @@ class PollAnswer(Base):
)
class ServerCategory(Base):
__tablename__ = "server_categories"
id = Column(Integer, primary_key=True, index=True)
name = Column(String(255), nullable=False, unique=True)
sort_order = Column(Integer, default=0)
is_active = Column(Boolean, default=True, nullable=False)
created_at = Column(DateTime, default=func.now(), nullable=False)
updated_at = Column(DateTime, default=func.now(), onupdate=func.now(), nullable=False)
servers = relationship("ServerSquad", back_populates="category")
def __repr__(self) -> str: # pragma: no cover - debug helper
return f"<ServerCategory(id={self.id}, name={self.name!r})>"
class ServerSquad(Base):
__tablename__ = "server_squads"
@@ -1302,8 +1318,10 @@ class ServerSquad(Base):
description = Column(Text, nullable=True)
sort_order = Column(Integer, default=0)
max_users = Column(Integer, nullable=True)
category_id = Column(Integer, ForeignKey("server_categories.id", ondelete="SET NULL"), nullable=True)
max_users = Column(Integer, nullable=True)
current_users = Column(Integer, default=0)
created_at = Column(DateTime, default=func.now())
@@ -1315,6 +1333,8 @@ class ServerSquad(Base):
back_populates="server_squads",
lazy="selectin",
)
category = relationship("ServerCategory", back_populates="servers")
@property
def price_rubles(self) -> float: