e62ece1c06
- FastAPI app with CORS, lifespan handlers - Pydantic Settings config (DB, Redis, CORS, SMTP, JWT, Rentman) - SQLAlchemy async engine + session (DeclarativeBase) - 6 DB models: EquipmentCache, RentalRequest, RentalRequestItem, Contact, AdminUser, SyncLog - Pydantic schemas: EquipmentItem, EquipmentDetail, PaginatedEquipment, ContactCreate, ContactResponse - Redis cache helper: set/get/delete_pattern, rate limiting, equipment key builders - Equipment router: list (search/category/sort/pagination), detail, categories – all cached - Contact router: POST with Pydantic validation + rate limiting (5/min) - Health router: GET /api/health with DB + Redis status - 28 pytest tests (all pass, 90% coverage) - Dockerfile, requirements.txt, pytest.ini, test_report.md
16 lines
298 B
Plaintext
16 lines
298 B
Plaintext
fastapi>=0.111.0
|
|
uvicorn[standard]>=0.30.0
|
|
sqlalchemy[asyncio]>=2.0.0
|
|
asyncpg>=0.29.0
|
|
aiosqlite>=0.20.0
|
|
pydantic>=2.0.0
|
|
pydantic-settings>=2.0.0
|
|
redis[hiredis]>=5.0.0
|
|
python-multipart>=0.0.9
|
|
httpx>=0.27.0
|
|
pytest>=8.0.0
|
|
pytest-asyncio>=0.23.0
|
|
pytest-cov>=5.0.0
|
|
fakeredis>=2.21.0
|
|
apscheduler>=3.10.0
|