batch import csv
This commit is contained in:
parent
a679775f57
commit
dd0ceef665
20 changed files with 1614 additions and 190 deletions
|
|
@ -104,10 +104,48 @@ class OrgMemberListResponse(BaseModel):
|
|||
counts: dict[str, int]
|
||||
|
||||
|
||||
class OrgMemberImportRow(BaseModel):
|
||||
first_name: str = Field(min_length=1, max_length=80)
|
||||
last_name: str = Field(min_length=1, max_length=80)
|
||||
work_email: str = Field(min_length=1, max_length=320)
|
||||
invitation_email: EmailStr | None = None
|
||||
password: str = Field(min_length=8, max_length=128)
|
||||
|
||||
|
||||
class OrgMemberImportRequest(BaseModel):
|
||||
org_role: Literal["user", "admin"] = "user"
|
||||
send_invitation: bool = True
|
||||
force_password_change: bool = True
|
||||
rows: list[OrgMemberImportRow] = Field(min_length=1, max_length=300)
|
||||
|
||||
|
||||
class OrgMemberImportRowResult(BaseModel):
|
||||
row: int
|
||||
email: str
|
||||
success: bool
|
||||
message: str
|
||||
invitation_sent: bool = False
|
||||
|
||||
|
||||
class OrgMemberImportResponse(BaseModel):
|
||||
created: list[OrgMemberRead]
|
||||
errors: list[OrgMemberImportRowResult]
|
||||
created_count: int
|
||||
error_count: int
|
||||
|
||||
|
||||
class MailGroupCreate(BaseModel):
|
||||
name: str = Field(min_length=1, max_length=120)
|
||||
email: EmailStr
|
||||
group_type: Literal["distribution", "dynamic"] = "distribution"
|
||||
owner_id: UUID
|
||||
send_permission: Literal[
|
||||
"org_members",
|
||||
"group_members",
|
||||
"owners_managers",
|
||||
"anyone",
|
||||
] = "org_members"
|
||||
description: str | None = Field(default=None, max_length=500)
|
||||
member_ids: list[UUID] = Field(default_factory=list)
|
||||
|
||||
|
||||
|
|
@ -116,12 +154,20 @@ class MailGroupRead(BaseModel):
|
|||
name: str
|
||||
email: EmailStr
|
||||
group_type: str
|
||||
owner_id: UUID | None = None
|
||||
send_permission: str = "org_members"
|
||||
member_count: int
|
||||
created_at: datetime
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class MailGroupEmailCheck(BaseModel):
|
||||
email: EmailStr
|
||||
available: bool
|
||||
conflict_type: str | None = None
|
||||
|
||||
|
||||
class MailGroupListResponse(BaseModel):
|
||||
items: list[MailGroupRead]
|
||||
counts: dict[str, int]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue