from pydantic import BaseModel from typing import Optional from datetime import datetime class WebhookCreate(BaseModel): url: str secret: Optional[str] = None events: str # comma-separated: "task.created,task.updated" project_id: Optional[int] = None is_active: bool = True class WebhookUpdate(BaseModel): url: Optional[str] = None secret: Optional[str] = None events: Optional[str] = None is_active: Optional[bool] = None class WebhookResponse(BaseModel): id: int url: str events: str project_id: Optional[int] is_active: bool created_at: datetime class Config: from_attributes = True class WebhookLogResponse(BaseModel): id: int webhook_id: int event: str payload: str response_status: Optional[int] success: bool created_at: datetime class Config: from_attributes = True