company flows

This commit is contained in:
debu-2 2026-10-04 20:01:29 +05:30
parent 6541284a4c
commit cc3f3f3de5
17 changed files with 1960 additions and 66 deletions

View file

@ -51,6 +51,81 @@ class AuthResponse(BaseModel):
account: AccountRead
class OrgMemberCreate(BaseModel):
first_name: str = Field(min_length=1, max_length=80)
last_name: str = Field(min_length=1, max_length=80)
email: EmailStr
org_role: Literal["user", "admin"] = "user"
send_invitation: bool = True
password: str | None = Field(default=None, min_length=8, max_length=128)
class OrgMemberRead(BaseModel):
id: UUID
email: EmailStr
first_name: str
last_name: str
org_role: str
member_status: str
is_domain_owner: bool = False
groups: list[str] = Field(default_factory=list)
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class OrgMemberListResponse(BaseModel):
items: list[OrgMemberRead]
counts: dict[str, int]
class MailGroupCreate(BaseModel):
name: str = Field(min_length=1, max_length=120)
email: EmailStr
group_type: Literal["distribution", "dynamic"] = "distribution"
member_ids: list[UUID] = Field(default_factory=list)
class MailGroupRead(BaseModel):
id: UUID
name: str
email: EmailStr
group_type: str
member_count: int
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class MailGroupListResponse(BaseModel):
items: list[MailGroupRead]
counts: dict[str, int]
class MailAliasCreate(BaseModel):
alias_address: EmailStr
forwards_to: EmailStr
alias_type: Literal["user", "group"] = "user"
is_domain_alias: bool = False
class MailAliasRead(BaseModel):
id: UUID
alias_address: EmailStr
forwards_to: EmailStr
alias_type: str
is_domain_alias: bool
status: str
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class MailAliasListResponse(BaseModel):
items: list[MailAliasRead]
counts: dict[str, int]
class EmailCreate(BaseModel):
recipients: list[EmailStr] = Field(min_length=1)
cc: list[EmailStr] = Field(default_factory=list)