major-domo-v2/services
Cal Corum 5133dc3d0f Add /branding command for team color/logo management (v2.20.0)
Implemented comprehensive team branding management system allowing team owners
to update colors and logos for major league, minor league, and dice rolls.

Features:
- Modal-based interactive form input with validation
- Hex color validation with normalization (6 chars, optional # prefix)
- Image URL accessibility testing with aiohttp (5 second timeout)
- Preview + confirmation workflow with ConfirmationView
- Support for both major league and minor league affiliate updates
- Dice color customization for game rolls
- Discord role color sync (non-blocking with graceful fallback)
- Comprehensive error handling and user feedback

Technical Implementation:
- BrandingModal class with 5 optional fields
- Concurrent URL validation using asyncio.gather
- Fixed team_service.update_team() to use PATCH with query parameters
- Enhanced TeamService documentation with correct method signatures
- 33 comprehensive tests (100% passing)

Bug Fixes:
- Fixed modal send timing (immediate response vs deferred)
- Fixed interaction handling for cancel button
- Fixed database API communication (PATCH query params vs PUT JSON)

Files:
- commands/teams/branding.py (NEW - ~500 lines)
- commands/teams/__init__.py (added BrandingCommands registration)
- commands/teams/CLAUDE.md (added comprehensive documentation)
- tests/test_commands_teams_branding.py (NEW - 33 tests)
- services/team_service.py (fixed update_team to use query params)
- VERSION (2.19.2 → 2.20.0)

Docker: manticorum67/major-domo-discord-app-v2:2.20.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 10:39:52 -06:00
..
__init__.py CLAUDE: Fix GroupCog interaction bug and GIF display issues 2025-10-16 22:15:42 -05:00
base_service.py CLAUDE: Fix /set-image command to use query parameters for API updates 2025-10-13 17:52:14 -05:00
chart_service.py CLAUDE: Add multi-image support for charts 2025-10-20 22:00:19 -05:00
CLAUDE.md CLAUDE: Add comprehensive draft system documentation 2025-10-24 15:16:39 -05:00
custom_commands_service.py Fix /cc-create endpoint path mismatch (v2.19.2) 2025-11-24 21:20:28 -06:00
decision_service.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
draft_list_service.py CLAUDE: Use DELETE endpoint for clearing draft list 2025-10-25 19:50:30 -05:00
draft_pick_service.py Draft pick service and draft helpers 2025-10-24 10:24:14 -05:00
draft_service.py CLAUDE: Fix draft channel configuration not persisting 2025-10-24 22:52:57 -05:00
game_service.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
giphy_service.py CLAUDE: Fix GroupCog interaction bug and GIF display issues 2025-10-16 22:15:42 -05:00
help_commands_service.py CLAUDE: Implement custom help commands system 2025-10-10 13:14:13 -05:00
injury_service.py Clear Injury bug fix 2025-10-22 19:20:43 -05:00
league_service.py CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
play_service.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
player_service.py CLAUDE: Add /ilmove command for real-time roster moves with organizational affiliate support 2025-10-20 20:15:12 -05:00
roster_service.py CLAUDE: Comprehensive bot improvements and test infrastructure 2025-10-02 11:35:26 -05:00
schedule_service.py CLAUDE: Major bot enhancements - Admin commands, player stats, standings, schedules 2025-08-28 15:32:38 -05:00
scorebug_service.py CLAUDE: Refactor scorebug display and add dynamic channel visibility 2025-10-22 16:58:21 -05:00
sheets_service.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
standings_service.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
stats_service.py CLAUDE: Major bot enhancements - Admin commands, player stats, standings, schedules 2025-08-28 15:32:38 -05:00
team_service.py Add /branding command for team color/logo management (v2.20.0) 2025-11-25 10:39:52 -06:00
trade_builder.py CLAUDE: Refine injury roll display and cleanup imports 2025-10-16 22:20:13 -05:00
transaction_builder.py CLAUDE: Change transaction diagnostic logging from INFO to DEBUG 2025-10-23 16:09:12 -05:00
transaction_service.py CLAUDE: Add /ilmove command for real-time roster moves with organizational affiliate support 2025-10-20 20:15:12 -05:00