"""WebhookConfig model — outbound HTTP notification endpoints.""" import uuid from sqlalchemy import Column, String, Boolean, DateTime, Integer, Text, ForeignKey, func from sqlalchemy.dialects.postgresql import UUID, JSONB from app.database import Base class WebhookConfig(Base): __tablename__ = "webhook_configs" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) name = Column(String(200), nullable=False) url = Column(Text, nullable=False) secret = Column(String(256), nullable=True) # HMAC signature key events = Column(JSONB, nullable=False, server_default="[]") # list of event types is_active = Column(Boolean, default=True, nullable=False) created_by = Column(UUID(as_uuid=True), ForeignKey("users.id", ondelete="SET NULL"), nullable=True) last_triggered_at = Column(DateTime, nullable=True) failure_count = Column(Integer, default=0, nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now())