Implements full Google Sheets scorecard submission with: - Complete game data extraction (68 play fields, pitching decisions, box score) - Transaction rollback support at 3 states (plays/game/complete) - Duplicate game detection with confirmation dialog - Permission-based submission (GMs only) - Automated results posting to news channel - Automatic standings recalculation - Key plays display with WPA sorting New Components: - Play, Decision, Game models with full validation - SheetsService for Google Sheets integration - GameService, PlayService, DecisionService for data management - ConfirmationView for user confirmations - Discord helper utilities for channel operations Services Enhanced: - StandingsService: Added recalculate_standings() method - CustomCommandsService: Fixed creator endpoint path - Team/Player models: Added helper methods for display Configuration: - Added SHEETS_CREDENTIALS_PATH environment variable - Added SBA_NETWORK_NEWS_CHANNEL and role constants - Enabled pygsheets dependency Documentation: - Comprehensive README updates across all modules - Added command, service, model, and view documentation - Detailed workflow and error handling documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
20 lines
400 B
Plaintext
20 lines
400 B
Plaintext
# Core Framework
|
|
discord.py>=2.3.0
|
|
pydantic>=2.0.0
|
|
pydantic-settings>=2.0.0
|
|
aiohttp>=3.8.0
|
|
|
|
# Utilities
|
|
python-dotenv>=1.0.0
|
|
redis>=5.0.0 # For optional API response caching
|
|
|
|
# Development & Testing
|
|
pytest>=7.0.0
|
|
pytest-asyncio>=0.21.0
|
|
pytest-mock>=3.10.0
|
|
aioresponses>=0.7.4
|
|
black>=23.0.0
|
|
ruff>=0.1.0
|
|
|
|
# Optional Dependencies
|
|
pygsheets>=4.0.0 # For Google Sheets integration (scorecard submission) |