| 40 | # ============================================================ |
| 41 | |
| 42 | class HookResult(BaseModel): |
| 43 | denied: bool = False |
| 44 | messages: list[str] = Field(default_factory=list) |
| 45 | |
| 46 | @staticmethod |
| 47 | def allow(messages: Optional[list[str]] = None) -> "HookResult": |
| 48 | return HookResult(denied=False, messages=messages or []) |
| 49 | |
| 50 | @staticmethod |
| 51 | def deny(messages: Optional[list[str]] = None) -> "HookResult": |
| 52 | return HookResult(denied=True, messages=messages or []) |
| 53 | |
| 54 | |
| 55 | # ============================================================ |