update schemas

This commit is contained in:
Rajat Ahuja 2025-06-10 13:15:10 -04:00
parent 77a623fc3e
commit 3510390110
1 changed files with 20 additions and 75 deletions

View File

@ -4,25 +4,25 @@ from typing import Annotated
from pydantic import BaseModel, ConfigDict, Field, computed_field, field_validator
class AppBase(BaseModel):
class WorkspaceBase(BaseModel):
pass
class AppCreate(AppBase):
class WorkspaceCreate(WorkspaceBase):
name: Annotated[str, Field(min_length=1, max_length=100)]
metadata: dict = {}
class AppGet(AppBase):
class WorkspaceGet(WorkspaceBase):
filter: dict | None = None
class AppUpdate(AppBase):
class WorkspaceUpdate(WorkspaceBase):
name: str | None = None
metadata: dict | None = None
class App(AppBase):
class Workspace(WorkspaceBase):
public_id: str = Field(serialization_alias='id')
name: str
h_metadata: dict = Field(default={}, serialization_alias='metadata')
@ -34,28 +34,28 @@ class App(AppBase):
)
class UserBase(BaseModel):
class PeerBase(BaseModel):
pass
class UserCreate(UserBase):
class PeerCreate(PeerBase):
name: Annotated[str, Field(min_length=1, max_length=100)]
metadata: dict = {}
class UserGet(UserBase):
class PeerGet(PeerBase):
filter: dict | None = None
class UserUpdate(UserBase):
class PeerUpdate(PeerBase):
name: str | None = None
metadata: dict | None = None
class User(UserBase):
class Peer(PeerBase):
public_id: str = Field(serialization_alias='id')
name: str
app_id: str
workspace_id: str
created_at: datetime.datetime
h_metadata: dict = Field(default={}, serialization_alias='metadata')
@ -71,7 +71,7 @@ class MessageBase(BaseModel):
class MessageCreate(MessageBase):
content: Annotated[str, Field(min_length=0, max_length=50000)]
is_user: bool
sender_id: str
metadata: dict = {}
@ -86,12 +86,11 @@ class MessageUpdate(MessageBase):
class Message(MessageBase):
public_id: str = Field(serialization_alias='id')
content: str
is_user: bool
session_id: str
sender_id: str
session_id: str | None
h_metadata: dict = Field(default={}, serialization_alias='metadata')
created_at: datetime.datetime
app_id: str
user_id: str
workspace_id: str
model_config = ConfigDict(
from_attributes=True,
@ -119,8 +118,7 @@ class SessionUpdate(SessionBase):
class Session(SessionBase):
public_id: str = Field(serialization_alias='id')
is_active: bool
user_id: str
app_id: str
workspace_id: str
h_metadata: dict = Field(default={}, serialization_alias='metadata')
created_at: datetime.datetime
@ -130,59 +128,6 @@ class Session(SessionBase):
)
class MetamessageBase(BaseModel):
pass
class MetamessageCreate(MetamessageBase):
label: Annotated[str, Field(min_length=1, max_length=50, alias='metamessage_type')]
content: Annotated[str, Field(min_length=0, max_length=50000)]
session_id: str | None = None
message_id: str | None = None
metadata: dict = {}
model_config = ConfigDict(populate_by_name=True)
class MetamessageGet(MetamessageBase):
label: str | None = Field(default=None, alias='metamessage_type')
session_id: str | None = None
message_id: str | None = None
filter: dict | None = None
model_config = ConfigDict(populate_by_name=True)
class MetamessageUpdate(MetamessageBase):
session_id: str | None = None
message_id: str | None = None
label: str | None = Field(default=None, alias='metamessage_type')
metadata: dict | None = None
model_config = ConfigDict(populate_by_name=True)
class Metamessage(MetamessageBase):
public_id: str = Field(serialization_alias='id')
label: str
content: str
user_id: str
app_id: str
session_id: str | None
message_id: str | None
h_metadata: dict = Field(default={}, serialization_alias='metadata')
created_at: datetime.datetime
# Included for backwards compatibility with the old metamessage_type field
@computed_field
@property
def metamessage_type(self) -> str:
return self.label
model_config = ConfigDict(
from_attributes=True,
populate_by_name=True
)
class CollectionBase(BaseModel):
@ -218,8 +163,8 @@ class CollectionUpdate(CollectionBase):
class Collection(CollectionBase):
public_id: str = Field(serialization_alias='id')
name: str
user_id: str
app_id: str
peer_id: str
workspace_id: str
h_metadata: dict = Field(default={}, serialization_alias='metadata')
created_at: datetime.datetime
@ -259,8 +204,8 @@ class Document(DocumentBase):
h_metadata: dict = Field(default={}, serialization_alias='metadata')
created_at: datetime.datetime
collection_id: str
app_id: str
user_id: str
workspace_id: str
peer_id: str
model_config = ConfigDict(
from_attributes=True,