44 lines
897 B
Python
44 lines
897 B
Python
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
|