This commit is contained in:
Leon
2025-07-15 22:54:35 +02:00
commit f7eda17284
89 changed files with 18535 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
from typing import List
from pydantic import BaseModel, ConfigDict, Field
class SettingsBase(BaseModel):
"""Base schema for application settings."""
imap_server: str
imap_username: str
search_folder: str = "INBOX"
move_to_folder: str | None = None
mark_as_read: bool = False
email_check_interval: int = 15
auto_add_new_senders: bool = False
class SettingsCreate(SettingsBase):
"""Schema for creating or updating settings, including the IMAP password."""
imap_password: str
class Settings(SettingsBase):
"""Schema for retrieving settings, with password excluded by default."""
id: int
imap_password: str | None = Field(None, exclude=True)
locked_fields: List[str] = []
model_config = ConfigDict(from_attributes=True)