Files
mtgonline/backend/CONTINUATION_PROMPT.md
T

121 lines
3.6 KiB
Markdown

# MTG Online Backend - Context for Continuation
## Current State
I just completed fixing 10 issues with the MTG Online backend codebase. All fixes are in place but **have not yet been deployed or tested**.
## What Was Fixed
### Files Modified/Created:
1. **`app/routers/interactions.py`** - NEW - Comprehensive interaction search endpoints
2. **`app/main.py`** - REWRITTEN - Fixed router mounting and logging
3. **`app/routers/__init__.py`** - REWRITTEN - Added all router exports
4. **`Dockerfile`** - REWRITTEN - Added scripts directory and permissions
### Key Changes:
- All 8 routers now properly mounted in FastAPI
- Interaction endpoints: synergies, counters, evolutions, recommendations, search, stats
- Verbose logging with debug support
- Consistent async database usage
- Redis caching for performance
- Proper error handling throughout
## Next Steps - Execute These Commands
### Step 1: Stop all containers
```bash
cd /home/wall-o/projects/mtgonline
docker compose down -v
```
### Step 2: Build the backend
```bash
cd /home/wall-o/projects/mtgonline
docker compose build backend
```
### Step 3: Deploy the stack
```bash
cd /home/wall-o/projects/mtgonline
docker compose up -d
```
### Step 4: Wait for containers to start
```bash
# Watch logs in real-time
docker compose logs -f backend
```
### Step 5: Verify health
```bash
# Check all containers
docker compose ps
# Test health endpoint
curl -s http://localhost:5555/health | python -m json.tool
# Check API docs are accessible
curl -s http://localhost:5555/docs | head -20
```
### Step 6: Verify interaction endpoints
```bash
# List all registered routes
curl -s http://localhost:5555/openapi.json | python -m json.tool | grep -E '"path":|"/(interactions|cards|auth|users|decks|rooms|games|admin)"'
# Test interaction search endpoint
curl -s "http://localhost:5555/interactions/search/synergies?limit=5" | python -m json.tool
```
## Expected Success Indicators
- All containers show `healthy` status
- `/health` returns `{"status": "healthy", "version": "0.2.0"}`
- `/docs` returns OpenAPI JSON
- All routers appear in `/openapi.json`
- No Python import errors in logs
- Database connections successful
- Redis connection successful
## Troubleshooting
### If container fails to start:
```bash
# Check exit codes
docker compose ps
# View recent logs
docker compose logs --tail=100 backend
# Check if port 5555 is in use
sudo lsof -i :5555
```
### Common Issues:
1. **Import errors**: Check that all router files exist and have proper syntax
2. **Database connection**: Verify `.env` has correct database URLs
3. **Port conflicts**: Ensure no other service uses port 5555
4. **Permission issues**: Dockerfile should run as `appuser` not root
### To view database state:
```bash
# Connect to card database
docker exec -it mtgonline_db_card psql -U mtgonline -d mtgdata -c "\dt"
# Check tables
docker exec -it mtgonline_db_card psql -U mtgonline -d mtgdata -c "SELECT count(*) FROM mtg_cards;"
```
## Important Context
- Backend port: **5555** (not 8000!)
- Two PostgreSQL containers: `mtgdata` and `users`
- Redis for caching
- All code runs as `wall-o` user (UID 1001)
- Python venv at `/home/wall-o/workspace/venv`
## Files to Review if Issues Arise
- `/home/wall-o/projects/mtgonline/backend/app/main.py` - Router mounting
- `/home/wall-o/projects/mtgonline/backend/app/routers/interactions.py` - New endpoints
- `/home/wall-o/projects/mtgonline/backend/app/routers/__init__.py` - Exports
- `/home/wall-o/projects/mtgonline/backend/Dockerfile` - Container setup
- `/home/wall-o/projects/mtgonline/.env` - Configuration
- `/home/wall-o/projects/mtgonline/docker-compose.yml` - Stack definition