43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
|
|
|
|
# --- Request / Response schemas ---
|
|
|
|
class NoteCreate(BaseModel):
|
|
"""Create a new equipment note/log entry."""
|
|
title: str
|
|
content: str
|
|
category: str = "general" # general, maintenance, installation, issue, other
|
|
device_id: Optional[str] = None # Firestore doc ID of linked device
|
|
user_id: Optional[str] = None # Firestore doc ID of linked user
|
|
|
|
|
|
class NoteUpdate(BaseModel):
|
|
"""Update an existing note. Only provided fields are updated."""
|
|
title: Optional[str] = None
|
|
content: Optional[str] = None
|
|
category: Optional[str] = None
|
|
device_id: Optional[str] = None
|
|
user_id: Optional[str] = None
|
|
|
|
|
|
class NoteInDB(BaseModel):
|
|
"""Note as stored in Firestore."""
|
|
id: str
|
|
title: str = ""
|
|
content: str = ""
|
|
category: str = "general"
|
|
device_id: str = ""
|
|
user_id: str = ""
|
|
device_name: str = ""
|
|
user_name: str = ""
|
|
created_by: str = ""
|
|
created_at: str = ""
|
|
updated_at: str = ""
|
|
|
|
|
|
class NoteListResponse(BaseModel):
|
|
notes: List[NoteInDB]
|
|
total: int
|