
Streamline admin panel to only handle pending event approvals: - Remove create_admin_event functions from Rust core - Remove createAdminEventJson from API bindings - Update events admin page to focus on pending approvals only - Maintain edit/delete for approved events via main collection Enforces cleaner workflow: Submit → Approve → Auto-move to events collection
3.1 KiB
3.1 KiB
Next Steps for Architecture Cleanup
🚨 Priority 1: Critical Architecture Violations
1. Fix Event Submission Direct API Call
Location: astro-church-website/src/pages/events/submit.astro:748
Issue: Still uses fetch('https://api.rockvilletollandsda.church/api/events/submit')
Fix: Replace with submitEventJson()
function from bindings
2. Data Model Mismatches
Issue: Frontend expects Schedule fields that may not exist in Rust models
Check: Does church-core/src/models/admin.rs
Schedule struct have:
song_leader
childrens_story
ss_teacher
ss_leader
mission_story
special_notes
Fix: Update Rust Schedule model if fields are missing
🧹 Priority 2: Code Cleanup
1. Remove Dead Code (Rust Warnings)
# Fix these warnings from build output:
cargo fix --lib -p church-core
Locations:
church-core/src/models/streaming.rs:1
- unused Serialize/Deserializechurch-core/src/utils/formatting.rs:56
- unused FixedOffsetchurch-core/src/client/http.rs:197
- unused delete method
2. Missing Admin Functions
Add to church-core/src/api.rs
:
fetch_admin_stats_json()
- Dashboard statisticsfetch_recurring_types_json()
- Configuration dataget_admin_users_json()
- User management
3. Upload Functionality
Issue: Old admin JS had image upload logic not yet converted
Add to church-core/src/api.rs
:
upload_event_image_json()
upload_bulletin_cover_json()
🔄 Priority 3: Enhanced Admin Features
1. Add TypeScript Types
Create: astro-church-website/src/types/admin.ts
- Define admin API response types
- Add type safety for admin operations
2. Improve Error Handling
Replace: Generic alert()
calls in admin pages
With: Proper error UI components
3. Add Loading States
Add to admin pages:
- Loading spinners for operations
- Disabled states during API calls
- Better UX feedback
🎯 Priority 4: Testing & Validation
1. Test New Admin Functionality
- Login/logout flow
- Event approval/rejection
- Bulletin CRUD operations
- Schedule management
- Event submission without thumbnail
2. Add Form Validation
- Client-side validation for admin forms
- Real-time feedback
- Error message display
📝 Implementation Order
- Immediate (blocking): Fix event submission API call
- High: Check/fix Schedule model data mismatches
- Medium: Add missing admin functions
- Low: UI/UX improvements and TypeScript types
🔧 Commands to Run
# Test current state
cd astro-church-website
npm run build
npm run dev
# Fix Rust warnings
cd ../church-core
cargo fix --lib -p church-core
# Rebuild after Rust changes
cd ../astro-church-website
npm run build:native
npm run build
🏆 Architecture Success Metrics
✅ ACHIEVED:
- Removed 1843 lines of direct API call violations
- All admin routes now use Rust core functions
- Proper Astro/TypeScript structure implemented
🎯 TARGET:
- Zero direct API calls from frontend
- All business logic in Rust crate
- Complete type safety with TypeScript
- Full test coverage for admin operations