feat: Implement hackathon registration module with controller, DTOs, repository, schema, and service

- Added registration_controller.rs to handle registration-related routes and logic.
- Created registration_dto.rs for data transfer objects related to registrations.
- Implemented registration_repository.rs for database interactions concerning registrations.
- Defined registration_schema.rs to represent the registration data structure.
- Developed registration_service.rs to encapsulate business logic for registrations.
- Established routes for registering, listing, updating, and checking in participants for hackathons.
- Added validation for registration requests and status updates.
- Included statistics retrieval for hackathon registrations.
This commit is contained in:
MythEclipse
2025-10-27 19:53:05 +07:00
parent 1caaa8404b
commit ece6499e2b
9 changed files with 714 additions and 0 deletions
+4
View File
@@ -53,6 +53,8 @@ pub enum ResourceEnum {
HackathonSubmissions,
/// Hackathon registrations table for participant registrations
HackathonRegistrations,
/// Notifications table for user notifications
Notifications,
/// Rate limiting table for IP-based rate limiting
RateLimit,
/// Audit log table for admin action tracking
@@ -85,6 +87,7 @@ impl fmt::Display for ResourceEnum {
ResourceEnum::HackathonTimeline => "app_hackathon_timeline",
ResourceEnum::HackathonSubmissions => "app_hackathon_submissions",
ResourceEnum::HackathonRegistrations => "hackathon_registrations",
ResourceEnum::Notifications => "notifications",
ResourceEnum::RateLimit => "app_rate_limit",
ResourceEnum::AuditLog => "app_audit_log",
ResourceEnum::Sessions => "app_sessions",
@@ -129,6 +132,7 @@ impl ResourceEnum {
ResourceEnum::HackathonTimeline => "app_hackathon_timeline",
ResourceEnum::HackathonSubmissions => "app_hackathon_submissions",
ResourceEnum::HackathonRegistrations => "hackathon_registrations",
ResourceEnum::Notifications => "notifications",
ResourceEnum::RateLimit => "app_rate_limit",
ResourceEnum::AuditLog => "app_audit_log",
ResourceEnum::Sessions => "app_sessions",