57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from typing import Any, Optional
|
||
|
|
|
||
|
|
from pydantic import BaseModel, Field
|
||
|
|
|
||
|
|
|
||
|
|
class SettingsUpdatePayload(BaseModel):
|
||
|
|
gitlab_url: Optional[str] = None
|
||
|
|
gitlab_token: Optional[str] = None
|
||
|
|
gitlab_project_path: Optional[str] = None
|
||
|
|
gitlab_board_id: Optional[int] = None
|
||
|
|
gitlab_board_labels: Optional[str] = None
|
||
|
|
gitlab_milestone_title: Optional[str] = None
|
||
|
|
|
||
|
|
pts_url: Optional[str] = None
|
||
|
|
pts_project_name: Optional[str] = None
|
||
|
|
pts_default_task_name: Optional[str] = None
|
||
|
|
pts_username: Optional[str] = None
|
||
|
|
pts_password: Optional[str] = None
|
||
|
|
|
||
|
|
auto_fill_enabled: Optional[bool] = None
|
||
|
|
auto_fill_hour: Optional[int] = Field(default=None, ge=0, le=23)
|
||
|
|
auto_fill_minute: Optional[int] = Field(default=None, ge=0, le=59)
|
||
|
|
|
||
|
|
max_hours_per_day: Optional[float] = Field(default=None, gt=0, le=24)
|
||
|
|
hour_step: Optional[float] = Field(default=None, gt=0, le=8)
|
||
|
|
|
||
|
|
xai_api_key: Optional[str] = None
|
||
|
|
xai_base_url: Optional[str] = None
|
||
|
|
grok_model: Optional[str] = None
|
||
|
|
use_llm: Optional[bool] = None
|
||
|
|
use_description_variation: Optional[bool] = None
|
||
|
|
|
||
|
|
teams_calendar_enabled: Optional[bool] = None
|
||
|
|
teams_username: Optional[str] = None
|
||
|
|
teams_password: Optional[str] = None
|
||
|
|
teams_calendar_timezone: Optional[str] = None
|
||
|
|
teams_meeting_task_name: Optional[str] = None
|
||
|
|
teams_headless: Optional[bool] = None
|
||
|
|
teams_meeting_exclude_keywords: Optional[str] = None
|
||
|
|
azure_client_id: Optional[str] = None
|
||
|
|
azure_tenant_id: Optional[str] = None
|
||
|
|
|
||
|
|
compbase_list_url: Optional[str] = None
|
||
|
|
compbase_fill_url: Optional[str] = None
|
||
|
|
compbase_username: Optional[str] = None
|
||
|
|
compbase_password: Optional[str] = None
|
||
|
|
compbase_default_days: Optional[int] = Field(default=None, ge=1, le=62)
|
||
|
|
compbase_out_time_mode: Optional[str] = None
|
||
|
|
|
||
|
|
def to_update_dict(self) -> dict[str, Any]:
|
||
|
|
return {k: v for k, v in self.model_dump().items() if v is not None}
|
||
|
|
|
||
|
|
|
||
|
|
class DatesFilePayload(BaseModel):
|
||
|
|
content: str = ""
|