mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 00:51:12 -05:00
Refactor code structure and remove redundant changes
This commit is contained in:
110
migration/PHASE_10_USERS_PROFILES.md
Normal file
110
migration/PHASE_10_USERS_PROFILES.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# PHASE 10: Users & Profiles
|
||||
|
||||
**Status:** ⬜ Not Started
|
||||
**Estimated Time:** 8-10 hours
|
||||
**Priority:** HIGH
|
||||
**Depends On:** Phase 1 (Foundation), Phase 2 (Authentication)
|
||||
**Blocks:** Phase 12 (Pages Migration)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Goal
|
||||
|
||||
Migrate all user profile and user management functionality from Supabase to Django.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Tasks
|
||||
|
||||
### Task 10.1: Users Service (3 hours)
|
||||
|
||||
```typescript
|
||||
class UsersService extends BaseService {
|
||||
// GET /users/{id}/
|
||||
async getUser(userId: string): Promise<User>
|
||||
|
||||
// GET /users/{id}/profile/
|
||||
async getUserProfile(userId: string): Promise<UserProfile>
|
||||
|
||||
// PATCH /users/{id}/profile/
|
||||
async updateUserProfile(userId: string, data: Partial<ProfileData>): Promise<UserProfile>
|
||||
|
||||
// GET /users/search/?q={query}
|
||||
async searchUsers(query: string): Promise<User[]>
|
||||
|
||||
// POST /users/{id}/block/
|
||||
async blockUser(userId: string): Promise<void>
|
||||
|
||||
// DELETE /users/{id}/block/
|
||||
async unblockUser(userId: string): Promise<void>
|
||||
|
||||
// GET /users/{id}/blocked/
|
||||
async getBlockedUsers(userId: string): Promise<User[]>
|
||||
}
|
||||
```
|
||||
|
||||
- [ ] Create `src/services/users/usersService.ts`
|
||||
- [ ] Create types and mappers
|
||||
- [ ] Handle profile updates
|
||||
- [ ] Handle user blocking
|
||||
|
||||
### Task 10.2: Update Profile Pages (3 hours)
|
||||
|
||||
**Files:**
|
||||
- `src/pages/Profile.tsx`
|
||||
- `src/components/profile/UserReviewsList.tsx`
|
||||
- `src/components/profile/RideCreditsManager.tsx`
|
||||
- `src/components/profile/UserBlockButton.tsx`
|
||||
|
||||
- [ ] Replace `supabase.from('profiles')` with `usersService`
|
||||
- [ ] Replace `supabase.rpc('get_filtered_profile')`
|
||||
- [ ] Update profile editing
|
||||
- [ ] Test profile display
|
||||
|
||||
### Task 10.3: Update Settings Pages (3 hours)
|
||||
|
||||
**Files:**
|
||||
- `src/pages/Settings.tsx`
|
||||
- `src/components/settings/AccountProfileTab.tsx`
|
||||
- `src/components/settings/SecurityTab.tsx`
|
||||
- `src/components/settings/PrivacyTab.tsx`
|
||||
- `src/components/settings/LocationTab.tsx`
|
||||
- `src/components/settings/DataExportTab.tsx`
|
||||
|
||||
- [ ] Replace all Supabase auth/profile calls
|
||||
- [ ] Update email change flow
|
||||
- [ ] Update password change flow
|
||||
- [ ] Update account deletion flow
|
||||
- [ ] Update data export
|
||||
|
||||
### Task 10.4: Update User Blocking (1-2 hours)
|
||||
|
||||
**Files:**
|
||||
- `src/components/privacy/BlockedUsers.tsx`
|
||||
- `src/components/profile/UserBlockButton.tsx`
|
||||
|
||||
- [ ] Replace block/unblock operations
|
||||
- [ ] Update blocked users list
|
||||
- [ ] Test blocking functionality
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Success Criteria
|
||||
|
||||
- [ ] User profiles display correctly
|
||||
- [ ] Profile editing works
|
||||
- [ ] Settings pages work
|
||||
- [ ] User blocking works
|
||||
- [ ] Avatar uploads work
|
||||
- [ ] Email change works
|
||||
- [ ] Password change works
|
||||
- [ ] Data export works
|
||||
- [ ] Account deletion works
|
||||
- [ ] Zero `supabase.from('profiles')` calls
|
||||
- [ ] Zero `supabase.auth.updateUser()` calls (except in auth service)
|
||||
|
||||
---
|
||||
|
||||
## ⏭️ Next Phase
|
||||
|
||||
**Phase 11:** Contact & Reports
|
||||
Reference in New Issue
Block a user