Files
2026-02-22 18:58:55 +08:00

42 lines
1.3 KiB
Python

from __future__ import annotations
import sqlalchemy as sa
from sqlalchemy.orm import Mapped, mapped_column
from app.db.models.base import Base
class ProxyPoolEndpoint(Base):
__tablename__ = "proxy_pool_endpoints"
__table_args__ = (
sa.Index("idx_ppe_pool_enabled", "pool_id", "enabled"),
sa.Index("idx_ppe_endpoint_pool", "endpoint_id", "pool_id"),
sa.CheckConstraint("enabled IN (0,1)", name="ck_ppe_enabled"),
)
pool_id: Mapped[int] = mapped_column(
sa.Integer(),
sa.ForeignKey("proxy_pools.id", ondelete="CASCADE"),
primary_key=True,
)
endpoint_id: Mapped[int] = mapped_column(
sa.Integer(),
sa.ForeignKey("proxy_endpoints.id", ondelete="CASCADE"),
primary_key=True,
)
enabled: Mapped[int] = mapped_column(sa.Integer(), nullable=False, server_default=sa.text("1"))
weight: Mapped[int] = mapped_column(sa.Integer(), nullable=False, server_default=sa.text("1"))
created_at: Mapped[str] = mapped_column(
sa.Text(),
nullable=False,
server_default=sa.text("(strftime('%Y-%m-%dT%H:%M:%fZ','now'))"),
)
updated_at: Mapped[str] = mapped_column(
sa.Text(),
nullable=False,
server_default=sa.text("(strftime('%Y-%m-%dT%H:%M:%fZ','now'))"),
)