| from typing import Optional | |
| from pydantic import Field | |
| from pydantic_settings import BaseSettings | |
| class NotionConfig(BaseSettings): | |
| """ | |
| Configuration settings for Notion integration | |
| """ | |
| NOTION_CLIENT_ID: Optional[str] = Field( | |
| description="Client ID for Notion API authentication. Required for OAuth 2.0 flow.", | |
| default=None, | |
| ) | |
| NOTION_CLIENT_SECRET: Optional[str] = Field( | |
| description="Client secret for Notion API authentication. Required for OAuth 2.0 flow.", | |
| default=None, | |
| ) | |
| NOTION_INTEGRATION_TYPE: Optional[str] = Field( | |
| description="Type of Notion integration." | |
| " Set to 'internal' for internal integrations, or None for public integrations.", | |
| default=None, | |
| ) | |
| NOTION_INTERNAL_SECRET: Optional[str] = Field( | |
| description="Secret key for internal Notion integrations. Required when NOTION_INTEGRATION_TYPE is 'internal'.", | |
| default=None, | |
| ) | |
| NOTION_INTEGRATION_TOKEN: Optional[str] = Field( | |
| description="Integration token for Notion API access. Used for direct API calls without OAuth flow.", | |
| default=None, | |
| ) | |