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

Ports the Go QR campaign overlay service to a self-contained Rust crate
nested at /v1/qr/... in the gateway.

Features:
- Auth: register, login, Google OAuth, JWT refresh (bcrypt compat with Go DB)
- Users: profile management + admin CRUD (list/role/delete)
- Campaigns: create (auto-generates QR PNG via qrcode crate), list,
  activate, delete; process-image endpoint overlays active campaign QR
  onto uploaded images (bottom-right corner, image crate)
- QR pool connects to imphnen_qr database via QR_DATABASE_URL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
maulanasdqn
2026-04-02 16:03:39 +07:00
co-authored by Claude Sonnet 4.6
parent 5715e75593
commit 4bba182ea3
51 changed files with 1942 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
[package]
name = "imphnen-qr"
version = "0.2.0"
edition = "2024"
[dependencies]
imphnen-utils.workspace = true
axum.workspace = true
axum-extra.workspace = true
async-trait.workspace = true
serde.workspace = true
serde_json.workspace = true
tokio.workspace = true
jsonwebtoken.workspace = true
bcrypt.workspace = true
chrono.workspace = true
uuid.workspace = true
sqlx.workspace = true
reqwest.workspace = true
oauth2.workspace = true
tracing.workspace = true
utoipa.workspace = true
image.workspace = true
qrcode.workspace = true