jira-ai-fixer/app/schemas/organization.py

47 lines
1.2 KiB
Python

"""Organization schemas."""
from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel, EmailStr
from app.models.organization import MemberRole
class OrganizationBase(BaseModel):
name: str
description: Optional[str] = None
class OrganizationCreate(OrganizationBase):
slug: Optional[str] = None # Auto-generated if not provided
class OrganizationUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
logo_url: Optional[str] = None
slack_webhook_url: Optional[str] = None
teams_webhook_url: Optional[str] = None
class OrganizationRead(OrganizationBase):
id: int
slug: str
logo_url: Optional[str] = None
plan: str = "free"
is_active: bool = True
created_at: datetime
member_count: Optional[int] = None
class Config:
from_attributes = True
class MemberCreate(BaseModel):
email: EmailStr
role: MemberRole = MemberRole.ANALYST
class MemberRead(BaseModel):
id: int
user_id: int
role: MemberRole
joined_at: datetime
user_email: Optional[str] = None
user_name: Optional[str] = None
class Config:
from_attributes = True