AI_Agent_Final_V2 / api /models.py
SarahXia0405's picture
Create models.py
7361291 verified
# api/models.py
from __future__ import annotations
from typing import List, Optional, Literal
from pydantic import BaseModel, Field
class PersonContact(BaseModel):
name: str = "N/A"
email: str = ""
class CourseDirectoryItem(BaseModel):
id: str
name: str
instructor: PersonContact = Field(default_factory=PersonContact)
teachingAssistant: PersonContact = Field(default_factory=PersonContact)
class WorkspaceMember(BaseModel):
id: str
name: str
email: Optional[str] = ""
role: Optional[Literal["owner", "member"]] = "member"
class WorkspaceCourseRef(BaseModel):
id: Optional[str] = None
name: Optional[str] = None
instructor: Optional[PersonContact] = None
teachingAssistant: Optional[PersonContact] = None
class Workspace(BaseModel):
id: str
type: Literal["individual", "group"]
category: Optional[Literal["course", "personal"]] = None
# ✅ Group Name:前端要编辑的 groupName 就用 name
name: Optional[str] = None
# ✅ Group #
groupNo: Optional[int] = None
# ✅ Members
members: List[WorkspaceMember] = Field(default_factory=list)
# ✅ Course binding
courseId: Optional[str] = None
courseInfo: Optional[WorkspaceCourseRef] = None