Automated Action cda1825688 Implement FastAPI inventory management system for small businesses
- Set up FastAPI application with CORS and health check endpoint
- Create SQLite database models for inventory items, categories, and suppliers
- Implement complete CRUD API endpoints for all entities
- Add low-stock monitoring functionality
- Configure Alembic for database migrations
- Set up Ruff for code linting and formatting
- Include comprehensive API documentation and README
2025-06-18 16:50:29 +00:00

80 lines
1.8 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel
class CategoryBase(BaseModel):
name: str
description: Optional[str] = None
class CategoryCreate(CategoryBase):
pass
class CategoryUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
class Category(CategoryBase):
id: int
created_at: datetime
class Config:
from_attributes = True
class SupplierBase(BaseModel):
name: str
contact_person: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
address: Optional[str] = None
class SupplierCreate(SupplierBase):
pass
class SupplierUpdate(BaseModel):
name: Optional[str] = None
contact_person: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
address: Optional[str] = None
class Supplier(SupplierBase):
id: int
created_at: datetime
class Config:
from_attributes = True
class InventoryItemBase(BaseModel):
name: str
sku: str
description: Optional[str] = None
quantity: int = 0
unit_price: float
minimum_stock: int = 0
category_id: Optional[int] = None
supplier_id: Optional[int] = None
class InventoryItemCreate(InventoryItemBase):
pass
class InventoryItemUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
quantity: Optional[int] = None
unit_price: Optional[float] = None
minimum_stock: Optional[int] = None
category_id: Optional[int] = None
supplier_id: Optional[int] = None
class InventoryItem(InventoryItemBase):
id: int
created_at: datetime
updated_at: datetime
category: Optional[Category] = None
supplier: Optional[Supplier] = None
class Config:
from_attributes = True