yao/openapi/user/TODO.md
Max b9a912b7d9 Enhance member invitation management and related functionality
- Introduced invitation_id handling for member management, allowing for unique identification of pending invitations.
- Added methods to create, update, and remove members by invitation_id, improving the invitation workflow.
- Updated member data structures and API responses to include invitation-related fields, enhancing clarity and usability.
- Implemented tests for invitation ID operations, ensuring robust validation and error handling.
- Refactored team access checks to streamline member management processes.
2025-09-23 17:47:43 +08:00

140 lines
4.3 KiB
Markdown

# User Module TODO
## ✅ Implemented (20/80)
### Authentication
- ✅ GET `/user/login` - Get login page configuration
- ✅ POST `/user/login` - User login
### OAuth & Third-Party Integration
- ✅ GET `/user/oauth/:provider/authorize` - Get OAuth authorization URL
- ✅ POST `/user/oauth/:provider/authorize/prepare` - Handle OAuth POST callback (Apple, WeChat)
- ✅ POST `/user/oauth/:provider/callback` - Handle OAuth GET callback (Google, GitHub)
### Team Management (15 endpoints)
#### Team CRUD (5 endpoints)
- ✅ GET `/user/teams` - Get user teams
- ✅ GET `/user/teams/:team_id` - Get user team details
- ✅ POST `/user/teams` - Create user team
- ✅ PUT `/user/teams/:team_id` - Update user team
- ✅ DELETE `/user/teams/:team_id` - Delete user team
#### Member Management (5 endpoints)
- ✅ GET `/user/teams/:team_id/members` - Get user team members
- ✅ GET `/user/teams/:team_id/members/:member_id` - Get user team member details
- ✅ POST `/user/teams/:team_id/members/direct` - Add member directly (for bots/system)
- ✅ PUT `/user/teams/:team_id/members/:member_id` - Update user team member
- ✅ DELETE `/user/teams/:team_id/members/:member_id` - Remove user team member
#### Invitation Management (5 endpoints)
- ✅ POST `/user/teams/:team_id/invitations` - Send team invitation
- ✅ GET `/user/teams/:team_id/invitations` - Get team invitations
- ✅ GET `/user/teams/:team_id/invitations/:invitation_id` - Get invitation details
- ✅ PUT `/user/teams/:team_id/invitations/:invitation_id/resend` - Resend invitation
- ✅ DELETE `/user/teams/:team_id/invitations/:invitation_id` - Cancel invitation
## ❌ TODO (60/80)
### Authentication
- ❌ POST `/user/register` - User registration
- ❌ POST `/user/logout` - User logout
### Profile Management
- ❌ GET `/user/profile` - Get user profile
- ❌ PUT `/user/profile` - Update user profile
### Account Security (13 endpoints)
- ❌ Password management (3 endpoints)
- ❌ Email management (5 endpoints)
- ❌ Mobile management (5 endpoints)
### Multi-Factor Authentication (12 endpoints)
- ❌ TOTP management (7 endpoints)
- ❌ SMS MFA management (5 endpoints)
### OAuth & Third-Party Integration
- ❌ GET `/user/oauth/providers` - Get linked OAuth providers
- ❌ DELETE `/user/oauth/:provider` - Unlink OAuth provider
- ❌ GET `/user/oauth/providers/available` - Get available OAuth providers
- ❌ POST `/user/oauth/:provider/connect` - Connect OAuth provider
### API Keys Management (6 endpoints)
- ❌ CRUD operations and regeneration for API keys
### Credits & Top-up (6 endpoints)
- ❌ Credits info, history, and top-up management
### Subscription Management (2 endpoints)
- ❌ Subscription info and updates
### Usage Statistics (2 endpoints)
- ❌ Usage statistics and history
### Billing & Invoices (2 endpoints)
- ❌ Billing history and invoice list
### Referral & Invitations (4 endpoints)
- ❌ Referral codes, statistics, history, commissions
### Invitation Response (3 endpoints)
- ❌ Cross-module invitation handling
### User Preferences (3 endpoints)
- ❌ User preference settings
### Privacy Settings (3 endpoints)
- ❌ Privacy settings
### User Management (Admin) (5 endpoints)
- ❌ User CRUD operations
## Progress Summary
- **Completion**: 25% (20/80)
- **Core Features**:
- ✅ Authentication and OAuth completed
-**Team Management completed** (15 endpoints)
- Full team CRUD operations with permission control
- Complete member management with role-based access
- Comprehensive invitation system with support for unregistered users
- Automatic member cleanup on team deletion
- Business ID-based operations for better API design
- **Next Steps**: Recommend implementing basic user management (register, logout, profile) next
## Recent Achievements
### Team Management System (v1.0) 🎉
- **Full Implementation**: All 15 team management endpoints are fully implemented and tested
- **Advanced Features**:
- Multi-invitation support for unregistered users
- Automatic owner membership creation
- Role-based permission system (owner/member access control)
- Business ID abstraction for better API design
- Comprehensive error handling and validation
- **Quality Assurance**:
- 100+ unit tests covering all scenarios
- Complete integration test suite
- Following testutils.go guidelines
- No regressions in existing functionality