"""WebhookConfig model — outbound HTTP notification endpoints.""" import uuid from datetime import datetime 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())