Files
MemoryBear/api/app/schemas/file_schema.py
2026-04-27 16:05:27 +08:00

44 lines
1.0 KiB
Python

from pydantic import BaseModel, Field, field_serializer, ConfigDict
import datetime
import uuid
class FileBase(BaseModel):
kb_id: uuid.UUID
created_by: uuid.UUID | None = None
parent_id: uuid.UUID | None = None
file_name: str
file_ext: str
file_size: int
file_url: str | None = None
file_key: str | None = None
created_at: datetime.datetime | None = None
class FileCreate(FileBase):
pass
class CustomTextFileCreate(BaseModel):
title: str
content: str
class FileUpdate(BaseModel):
parent_id: uuid.UUID | None = Field(None)
file_name: str | None = Field(None)
file_ext: str | None = Field(None)
file_size: str | None = Field(None)
file_url: str | None = Field(None)
class File(FileBase):
id: uuid.UUID
created_at: datetime.datetime
model_config = ConfigDict(from_attributes=True)
@field_serializer("created_at", when_used="json")
def _serialize_created_at(self, dt: datetime.datetime):
return int(dt.timestamp() * 1000) if dt else None