Infrastructure: Implement master/dev/vX branching, save git path, and fix username casing
This commit is contained in:
@@ -2,11 +2,52 @@ from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
|
||||
# --- Users ---
|
||||
class UserBase(BaseModel):
|
||||
username: str
|
||||
role: str = "user"
|
||||
|
||||
class UserCreate(UserBase):
|
||||
password: Optional[str] = None
|
||||
|
||||
class User(UserBase):
|
||||
id: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class UserLogin(BaseModel):
|
||||
username: str
|
||||
password: str
|
||||
|
||||
class UserPasswordUpdate(BaseModel):
|
||||
old_password: Optional[str] = None
|
||||
new_password: str
|
||||
|
||||
# --- Categories ---
|
||||
class CategoryBase(BaseModel):
|
||||
name: str
|
||||
description: Optional[str] = None
|
||||
|
||||
class CategoryCreate(CategoryBase):
|
||||
pass
|
||||
|
||||
class Category(CategoryBase):
|
||||
id: int
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
# --- Items ---
|
||||
class ItemBase(BaseModel):
|
||||
name: str
|
||||
category: str
|
||||
category_id: Optional[int] = None
|
||||
type: Optional[str] = None
|
||||
barcode: str
|
||||
part_number: Optional[str] = None
|
||||
color: Optional[str] = None
|
||||
specs: Optional[str] = None
|
||||
quantity: float = 0.0
|
||||
min_quantity: float = 1.0
|
||||
image_url: Optional[str] = None
|
||||
@@ -37,14 +78,28 @@ class TrashOperationCreate(BaseModel):
|
||||
user_id: int
|
||||
reason: Optional[str] = "unspecified"
|
||||
|
||||
# --- Sync ---
|
||||
class SyncOperation(BaseModel):
|
||||
type: str # 'CHECK_IN', 'CHECK_OUT'
|
||||
barcode: str
|
||||
quantity: float
|
||||
uuid: Optional[str] = None
|
||||
timestamp: datetime
|
||||
|
||||
class SyncPayload(BaseModel):
|
||||
user_id: int
|
||||
operations: List[SyncOperation]
|
||||
|
||||
# --- Audit Logs ---
|
||||
class AuditLogResponse(BaseModel):
|
||||
id: int
|
||||
timestamp: datetime
|
||||
user_id: int
|
||||
username: Optional[str] = None
|
||||
action: str
|
||||
target_item_id: Optional[int]
|
||||
quantity_change: Optional[float]
|
||||
details: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
Reference in New Issue
Block a user