Commit graph

168 commits

Author SHA1 Message Date
Ashwin Kumar
4a233843f6 Update users handlers for config and management endpoints 2026-03-30 04:52:27 +02:00
Ashwin Kumar
b602c8df53 feat(runtime-config): derive enabled modules from internal role permissions 2026-03-27 21:34:28 +01:00
Ashwin Kumar
7dec3e85fb feat(users): admin runtime configs + external roles + employees APIs 2026-03-27 21:25:31 +01:00
Ashwin Kumar
3b28d9fd36 feat: add designation management CRUD backend
Full CRUD handler for designations with department JOIN, employee count,
level/can_manage_team/can_approve fields, and migration to extend the
minimal designations table with all management columns.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 19:20:55 +01:00
Ashwin Kumar
89d9e3b861 chore: sync local changes 2026-03-26 20:58:43 +01:00
Ashwin Kumar
a7a0854a5b Fix environment variable exports in start-services 2026-03-26 00:36:14 +01:00
Ashwin Kumar
0be46d328a feat: add phase 2 dashboard metrics api 2026-03-25 23:55:44 +01:00
Ashwin Kumar
d49a29b965 chore: cleanup — remove stub professionals app, empty crates, unused import
- Delete apps/professionals (all stub handlers returning mock data, shadowed
  by individual profession services on ports 8085-8093)
- Delete empty crate dirs: crates/config, crates/errors, crates/observability
  (already removed from Cargo.toml workspace members, stale directories)
- Delete empty apps/jobseekers dir (duplicate of apps/job_seekers)
- Remove unused Uri import from gateway main.rs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 23:35:30 +01:00
Ashwin Kumar
e1ea3f5ffe Align role handlers and shared profession contract updates 2026-03-25 23:03:12 +01:00
Ashwin Kumar
b82f294331 chore: checkpoint current workspace changes 2026-03-25 22:15:07 +01:00
Ashwin Kumar
ac27184ae2 feat(approvals): add GET /submission/{user_id} handler for admin submission viewer
Returns user info + onboarding state progress_json for a given user and
roleKey, enabling the admin panel to display full onboarding form answers
during approval review.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 00:34:49 +01:00
Ashwin Kumar
91534d74c0 chore: checkpoint current workspace changes 2026-03-22 15:55:29 +01:00
Ashwin Kumar
cb36e2fa7d fix(seed): align upsert conflict targets with partial unique indexes 2026-03-21 15:17:59 +01:00
Ashwin Kumar
3b6d0f4951 feat(backend): enforce profile approvals and complete migration approval flows 2026-03-19 00:30:23 +01:00
Ashwin Kumar
9764a7acdd feat: commit remaining service files, migrations, and model updates
- gateway, companies, customers, job_seekers apps updated
- users config/mod/mail handlers
- auth middleware and jwt crate updates
- db models: user, config, mod updates
- all remaining migrations: portfolio, notifications, reviews, kb, support, coupons, onboarding states

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 22:59:47 +01:00
Ashwin Kumar
bb8155dd27 feat: add Redis for OTP, auth tokens, rate limiting, lead dedup and marketplace cache
- Add crates/cache with client, otp, rate_limit, token, lead, jobs modules
- OTP tokens stored in Redis (15-min TTL, single-use GETDEL on verify)
- Refresh tokens stored in Redis (30-day TTL) — removed DB storage
- Password reset tokens stored in Redis (1-hour TTL, single-use)
- Rate limiting: register (10/hr), login (10/15min), OTP resend (3/hr), lead (5/hr), job post (20/hr)
- Lead request deduplication: 24-hour Redis lock per professional+requirement pair
- Marketplace listings cached in Redis (5-min TTL per profession+page+limit)
- Add ProfessionState{pool, redis} to contracts crate, replacing bare PgPool in all 9 profession apps
- All profession handlers and main.rs updated to use ProfessionState
- REDIS_URL env var (default: redis://127.0.0.1:6379) used across all services
- Fix profession model struct name mangling in 6 handlers (MakeupArtistRepository etc.)
- Add custom_data JSONB migration for all 9 profession profile tables
- Add onboarding_state model and repository (save_progress, complete, is_complete)
- Add onboarding handler accepting roleKey:String (not role_id:UUID) for frontend compat

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 22:58:42 +01:00
Ashwin Kumar
5640cd4ee5 feat: complete rust microservices migration with real db logic 2026-03-17 20:42:51 +01:00
Ashwin Kumar
20684655d7 chore: bootstrap rust backend workspace and migration master plan 2026-03-16 22:23:58 +01:00