fix: IMAP hierarchical folder sync, deduplication, folder tree display, resizable panel
This commit is contained in:
@@ -4,13 +4,14 @@ from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
# ─── Mail Accounts ───
|
||||
|
||||
|
||||
class MailAccountCreate(BaseModel):
|
||||
email_address: str = Field(..., min_length=1, max_length=255)
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
email_address: str = Field(..., min_length=1, max_length=255, alias="email")
|
||||
display_name: str = Field(default="", max_length=255)
|
||||
imap_host: str = Field(..., min_length=1, max_length=255)
|
||||
imap_port: int = Field(default=993, ge=1, le=65535)
|
||||
@@ -18,13 +19,14 @@ class MailAccountCreate(BaseModel):
|
||||
smtp_host: str = Field(..., min_length=1, max_length=255)
|
||||
smtp_port: int = Field(default=587, ge=1, le=65535)
|
||||
smtp_tls: bool = True
|
||||
username: str = Field(..., min_length=1, max_length=255)
|
||||
username: str = Field(default="", min_length=0, max_length=255)
|
||||
password: str = Field(..., min_length=1, max_length=512)
|
||||
is_shared: bool = False
|
||||
|
||||
|
||||
class MailAccountUpdate(BaseModel):
|
||||
email_address: str | None = Field(None, min_length=1, max_length=255)
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
email_address: str | None = Field(None, min_length=1, max_length=255, alias="email")
|
||||
display_name: str | None = Field(None, max_length=255)
|
||||
imap_host: str | None = Field(None, min_length=1, max_length=255)
|
||||
imap_port: int | None = Field(None, ge=1, le=65535)
|
||||
@@ -40,6 +42,7 @@ class MailAccountUpdate(BaseModel):
|
||||
|
||||
class MailAccountResponse(BaseModel):
|
||||
id: str
|
||||
email: str
|
||||
email_address: str
|
||||
display_name: str
|
||||
imap_host: str
|
||||
|
||||
Reference in New Issue
Block a user