Automated Action 447799c9a0 Implement complete FastAPI inventory management system for small businesses
Features implemented:
- Product management with CRUD operations
- Category and supplier management
- Stock movement tracking with automatic updates
- Inventory reports and analytics
- SQLite database with Alembic migrations
- Health monitoring endpoints
- CORS configuration for API access
- Comprehensive API documentation
- Code quality with Ruff linting and formatting

The system provides a complete backend solution for small business inventory management with proper database relationships, stock tracking, and reporting capabilities.
2025-07-23 09:07:46 +00:00

66 lines
1.8 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pathlib import Path
from app.db.session import engine
from app.db.base import Base
from app.routers import products, categories, suppliers, stock_movements, reports
Base.metadata.create_all(bind=engine)
app = FastAPI(
title="Small Business Inventory System",
description="A comprehensive inventory management system for small businesses",
version="1.0.0",
openapi_url="/openapi.json",
)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(products.router, prefix="/api/v1")
app.include_router(categories.router, prefix="/api/v1")
app.include_router(suppliers.router, prefix="/api/v1")
app.include_router(stock_movements.router, prefix="/api/v1")
app.include_router(reports.router, prefix="/api/v1")
@app.get("/")
def root():
return {
"title": "Small Business Inventory System",
"description": "A comprehensive inventory management system for small businesses",
"version": "1.0.0",
"documentation": "/docs",
"health_check": "/health",
}
@app.get("/health")
def health_check():
try:
db_dir = Path("/app/storage/db")
db_file = db_dir / "db.sqlite"
return {
"status": "healthy",
"database": {
"status": "connected",
"path": str(db_file),
"exists": db_file.exists(),
},
"storage": {"directory": str(db_dir), "exists": db_dir.exists()},
}
except Exception as e:
return {"status": "unhealthy", "error": str(e)}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)