feat: migrate imphnen-backend-hackathon into workspace as imphnen-hackathon crate

Consolidates the standalone hackathon backend (16 crates) into a single
imphnen-hackathon crate following the existing clean architecture patterns.
All endpoints are exposed under /v1/hackathon/ via the gateway.

Features migrated:
- Auth: Supabase-based signup/login/GitHub OAuth/password reset (own JWT)
- Users: profile management with team listing
- Teams: CRUD with city validation, deadline enforcement, invite system
- Invitations: team member invitations with accept/reject flow
- Join Requests: team join request workflow
- Chat: team messaging with author/leader delete permissions
- Submissions: project submission lifecycle (draft→pending→submitted)
- Storage: Supabase Storage file upload endpoints
- Certificates: public user certificate data endpoint
- Winners: public winners listing
- Admin: admin-only CRUD for all entities

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
maulanasdqn
2026-04-02 15:15:00 +07:00
co-authored by Claude Sonnet 4.6
parent 05a5b39195
commit 11442c6285
119 changed files with 4385 additions and 11 deletions
Generated
+27
View File
@@ -1604,6 +1604,7 @@ dependencies = [
"imphnen-dimentorin",
"imphnen-entities",
"imphnen-gacha",
"imphnen-hackathon",
"imphnen-iam",
"imphnen-libs",
"imphnen-middleware",
@@ -1619,6 +1620,31 @@ dependencies = [
"utoipa-swagger-ui",
]
[[package]]
name = "imphnen-hackathon"
version = "0.2.0"
dependencies = [
"async-trait",
"axum",
"axum-extra",
"base64",
"chrono",
"imphnen-libs",
"imphnen-utils",
"jsonwebtoken",
"lettre",
"reqwest",
"sea-orm",
"serde",
"serde_json",
"sqlx",
"thiserror 2.0.17",
"tokio",
"tracing",
"utoipa",
"uuid",
]
[[package]]
name = "imphnen-iam"
version = "0.2.0"
@@ -4215,6 +4241,7 @@ dependencies = [
"quote",
"regex",
"syn 2.0.111",
"uuid",
]
[[package]]