feat: T03 Backend Core – FastAPI + DB Models + Equipment API + Redis #1

Closed
Leopoldadmin wants to merge 1 commits from feature/T03-backend-core into main
Owner

T03 Backend Core Implementation

Summary

  • FastAPI app with CORS, lifespan handlers
  • 6 SQLAlchemy DB models (EquipmentCache, RentalRequest, RentalRequestItem, Contact, AdminUser, SyncLog)
  • Pydantic schemas for equipment + contact
  • Redis cache helper (set/get/delete, rate limiting, equipment key builders)
  • Equipment router: list (search/category/sort/pagination), detail, categories – all cached
  • Contact router: POST with validation + rate limiting (5/min)
  • Health router: GET /api/health with DB + Redis status
  • 28 pytest tests, all pass, 90% coverage

Test Evidence

  • python -m pytest tests/ -v --cov=app → 28 passed, 90% coverage
  • python -c "from app.main import app; print(app.title)" → HMS Licht & Ton API

Files: 29 files, 1251 insertions

Acceptance Criteria: All met

## T03 Backend Core Implementation ### Summary - FastAPI app with CORS, lifespan handlers - 6 SQLAlchemy DB models (EquipmentCache, RentalRequest, RentalRequestItem, Contact, AdminUser, SyncLog) - Pydantic schemas for equipment + contact - Redis cache helper (set/get/delete, rate limiting, equipment key builders) - Equipment router: list (search/category/sort/pagination), detail, categories – all cached - Contact router: POST with validation + rate limiting (5/min) - Health router: GET /api/health with DB + Redis status - 28 pytest tests, all pass, 90% coverage ### Test Evidence - `python -m pytest tests/ -v --cov=app` → 28 passed, 90% coverage - `python -c "from app.main import app; print(app.title)"` → HMS Licht & Ton API ### Files: 29 files, 1251 insertions ### Acceptance Criteria: All met
Leopoldadmin added 1 commit 2026-07-08 23:27:46 +00:00
- 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
Leopoldadmin closed this pull request 2026-07-10 20:50:10 +00:00
Leopoldadmin deleted branch feature/T03-backend-core 2026-07-10 20:50:10 +00:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leopoldadmin/hms-licht-ton#1