Commit graph

4 commits

Author SHA1 Message Date
Benjamin Slingo ed72011f16 Phase 3 complete: EventService restructuring achieves maximum DRY/KISS compliance
RESTRUCTURING ACCOMPLISHED:
• Split monolithic EventService into focused services (EventsV1Service, EventsV2Service, PendingEventsService)
• Migrated ALL remaining direct SQL to shared sql::events functions
• Updated all handlers to use appropriate focused services
• Removed obsolete EventService completely

CONSISTENCY FIXES:
• ScheduleService: migrated to sql::schedule pattern (eliminated all direct SQL)
• HymnalService: fixed DRY/KISS violations using sql::hymnal for CRUD operations
• AuthService: ensured consistent sql::users usage

RESULT: All major services now follow Handler→Service→sql:: pattern consistently.
No more direct SQL violations. No more debugging nightmare inconsistencies.
Zero downtime maintained - HTTP responses unchanged.
2025-08-29 22:37:26 -04:00
Benjamin Slingo e48015d946 Phase 3 foundation: establish sql:: module ecosystem for consistency
SQL MODULE INFRASTRUCTURE:
• Created 3 new sql:: modules: users, schedule, events
• Expanded existing sql:: module system to 8 total modules
• Updated sql/mod.rs with complete module organization
• Established consistent sql:: → direct SQL pattern

NEW SQL MODULES:
• src/sql/users.rs: User auth operations + UserWithPassword struct
• src/sql/schedule.rs: Schedule, offering, sunset SQL utilities
• src/sql/events.rs: Event lifecycle operations (enhanced from basic version)

PARTIAL SERVICE MIGRATIONS:
• AuthService: Successfully migrated to use sql::users (COMPLETE)
• EventService: Partial migration - 3/16 SQL queries moved to sql::events
• ScheduleService: Prepared sql::schedule module, migration pending

ARCHITECTURE FOUNDATION:
Before: Mixed patterns (some sql::, some direct SQL - inconsistent)
After:  Foundation for Handler → Service → sql:: → Direct SQL (consistent)

DISCOVERY: EventService complexity issue identified
- 16 SQL queries across V1/V2 APIs, pending events, pagination
- Violates single responsibility principle
- Needs refactoring: split into EventsV1Service, EventsV2Service, PendingEventsService

NEXT SESSION PLAN:
1. Restructure EventService into focused services (V1/V2/Pending separation)
2. Complete sql:: migrations with cleaner, smaller services
3. Achieve full Handler→Service→sql:: consistency across codebase

Benefits: Solid sql:: foundation established, AuthService fully migrated,
architectural pattern proven, cleaner refactoring path identified
2025-08-29 10:22:07 -04:00
Benjamin Slingo 6bee94c311 Apply DRY/KISS: Replace db wrapper layer with shared SQL functions
- Create sql:: module with raw SQL queries (no business logic)
- Services now call sql:: functions + handle conversion logic only
- Eliminate SQL duplication across V1/V2 service methods
- Remove redundant db:: wrapper functions for bulletins, bible_verses, schedule
- Clean Handler → Service → Shared SQL → DB architecture
- Maintain API compatibility, zero downtime
2025-08-29 09:02:05 -04:00
Benjamin Slingo 0c06e159bb Initial commit: Church API Rust implementation
Complete church management system with bulletin management, media processing, live streaming integration, and web interface. Includes authentication, email notifications, database migrations, and comprehensive test suite.
2025-08-19 20:56:41 -04:00