How smthdev/winforce_platform_backend works
Winforce is a Go API for account access, profiles, QR codes, balances, receipt processing, games, and Telegram linking. Users and administrators enter through the versioned HTTP API; authentication and admin middleware guard operations, which handlers delegate to domain services. Receipt uploads are parsed, stored, and recorded as balance activity. The route excerpt confirms several service/repository integrations, but source for many handlers and services was not sampled, so those internal links are omitted where their calls cannot be verified.
Main entry points: server.go API Router · balance_service.go Balance Service · auth.go Auth Middleware · telegram_service.go Telegram Service
Components 32
HTTP API
- API Router
internal/routes/server.go - Auth Middleware
internal/middleware/auth.go
Identity and Profiles
- Login Handler
internal/handlers/auth_handler.go - Auth Setup
internal/service/auth_service.go - Profile Handlers
internal/handlers/profile_handler.go - User Handlers
internal/handlers/users_handler.go - Profile Service
internal/service/profile_service.go - User Repository
internal/repository/postgres/user_repo/user_repo.go - Avatar Handler
internal/handlers/avatar_handler.go - Avatar Service
internal/service/avatar_service.go - Avatar Repository
internal/repository/postgres/avatar_repo/avatar_repo.go
Balance and Games
- Balance Handler
internal/handlers/balance_handler.go - Balance Service
internal/service/balance_service.go - Balance Repository
internal/repository/postgres/balance_repo/balance_repo.go - Game Handler
internal/handlers/game_handler.go - Game Service
internal/service/game_service.go - Game Repository
internal/repository/postgres/game_repo/game_repo.go
Files and Integrations
- Telegram Handler
internal/handlers/telegram_handler.go - Telegram Service
internal/service/telegram_service.go - Telegram Repository
internal/repository/postgres/telegram_repo/telegram_repo.go - QR Handler
internal/handlers/qr_handler.go - QR Service
internal/service/qr_service.go - QR Repository
internal/repository/postgres/qr_repo/qr_repo.go - File Handler
internal/handlers/file_handler.go - File Service
internal/service/file_service.go
Other components
- User
- Administrator
- PostgreSQL
- MinIO Storage
- Receipt Parser
internal/repository/parsing/parsing.go - Telegram Bot
internal/repository/telegram/bot.go - Limen Auth
Connections 40
- User → API Router: sends requests
- Administrator → API Router: sends requests
- API Router → Login Handler: dispatches login
- API Router → Limen Auth: dispatches auth
- API Router → Auth Middleware: guards routes
- Login Handler → Limen Auth: forwards sign-in
- Auth Middleware → Limen Auth: validates session
- Auth Middleware → User Repository: checks admin
- API Router → Profile Handlers: dispatches profile
- API Router → User Handlers: dispatches users
- Profile Handlers → Profile Service: calls
- User Handlers → Profile Service: calls
- Profile Service → User Repository: reads and writes
- API Router → Avatar Handler: dispatches avatar
- Avatar Handler → Avatar Service: calls
- API Router → Telegram Handler: dispatches Telegram
- Telegram Handler → Telegram Service: calls
- Telegram Service → Telegram Repository: reads and writes
- API Router → QR Handler: dispatches QR
- QR Handler → QR Service: calls
- API Router → File Handler: dispatches files
- File Handler → File Service: calls
- API Router → Balance Handler: dispatches balance
- Balance Handler → Balance Service: calls
- Balance Service → Balance Repository: reads and writes
- Balance Service → Receipt Parser: parses receipt
- Balance Service → MinIO Storage: stores receipt
- API Router → Game Handler: dispatches games
- Game Handler → Game Service: calls
- Limen Auth → PostgreSQL: stores auth data
- User Repository → PostgreSQL: queries
- Avatar Repository → PostgreSQL: queries
- Telegram Repository → PostgreSQL: queries
- QR Repository → PostgreSQL: queries
- Balance Repository → PostgreSQL: queries
- Game Repository → PostgreSQL: queries
- Avatar Service → MinIO Storage: stores avatars
- QR Service → MinIO Storage: stores QR files
- File Service → MinIO Storage: serves files
- Telegram Service → Telegram Bot: uses bot token