from datetime import datetime from sqlalchemy import ForeignKey, Integer, String from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.sql import func from app.database import Base class PushSubscription(Base): __tablename__ = "push_subscription" id: Mapped[int] = mapped_column(Integer, primary_key=True) user_id: Mapped[int | None] = mapped_column( ForeignKey("user.id", ondelete="CASCADE"), nullable=True ) endpoint: Mapped[str] = mapped_column(String(512), nullable=False, unique=True) p256dh_key: Mapped[str] = mapped_column(String(255), nullable=False) auth_key: Mapped[str] = mapped_column(String(255), nullable=False) user_agent: Mapped[str | None] = mapped_column(String(255), nullable=True) created_at: Mapped[datetime] = mapped_column(server_default=func.now(), nullable=False)