Automated Action 1badf85dea Create FastAPI inventory management system for small businesses
- Set up FastAPI application with SQLite database
- Implemented CRUD operations for inventory items, categories, and suppliers
- Added Alembic migrations for database schema management
- Configured CORS middleware for cross-origin requests
- Added health check and API documentation endpoints
- Structured project with proper separation of concerns
- Added comprehensive README with API documentation
2025-06-25 10:33:52 +00:00

93 lines
1.9 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
updated_at: Optional[datetime] = None
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
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class InventoryItemBase(BaseModel):
name: str
sku: str
description: Optional[str] = None
category_id: Optional[int] = None
supplier_id: Optional[int] = None
quantity: int = 0
min_quantity: int = 0
unit_price: float
class InventoryItemCreate(InventoryItemBase):
pass
class InventoryItemUpdate(BaseModel):
name: Optional[str] = None
sku: Optional[str] = None
description: Optional[str] = None
category_id: Optional[int] = None
supplier_id: Optional[int] = None
quantity: Optional[int] = None
min_quantity: Optional[int] = None
unit_price: Optional[float] = None
class InventoryItem(InventoryItemBase):
id: int
created_at: datetime
updated_at: Optional[datetime] = None
category: Optional[Category] = None
supplier: Optional[Supplier] = None
class Config:
from_attributes = True