Initial commit: dating app backend (Go/Gin/GORM/Postgres)
Phone+OTP auth, staged onboarding, admin approval workflow, and a full discovery/swipe/match/chat system with photo upload and approximate distance (haversine) based on user location. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package service
|
||||
|
||||
import "log"
|
||||
|
||||
// OTPSender اینترفیس ارسال پیامک کد تایید.
|
||||
// برای اتصال به یک گیتوی واقعی (کاوهنگار، ملیپیامک و ...) کافیه یک
|
||||
// پیادهسازی جدید از این اینترفیس بسازی و در main.go جایگزین mock کنی؛
|
||||
// بقیهی کد (UserService و...) نیازی به تغییر ندارد.
|
||||
//
|
||||
// نکتهی مهم: پیادهسازی واقعی باید SYNC باشه (منتظر پاسخ گیتوی بمونه)
|
||||
// و نتیجهی واقعی ارسال رو برگردونه؛ اگه async/بیخیال از نتیجه باشه،
|
||||
// کاربر حتی در صورت شکست واقعی ارسال، پیام «با موفقیت ارسال شد» میگیره
|
||||
// و منتظر کدی میمونه که هیچوقت نمیرسه.
|
||||
type OTPSender interface {
|
||||
// Send کد OTP را برای شمارهی دادهشده ارسال میکند.
|
||||
// خروجی true یعنی گیتوی ارسال را با موفقیت تایید کرده است.
|
||||
Send(phone string, otp string) bool
|
||||
}
|
||||
|
||||
// MockOTPSender پیادهسازی توسعه/تست: بهجای ارسال واقعی پیامک،
|
||||
// کد را در لاگ سرور چاپ میکند. برای پروداکشن باید با یک گیتوی واقعی
|
||||
// جایگزین شود.
|
||||
type MockOTPSender struct {
|
||||
// Debug اگر true باشد، کد OTP در لاگ چاپ میشود (فقط برای dev/staging).
|
||||
Debug bool
|
||||
}
|
||||
|
||||
func NewMockOTPSender(debug bool) *MockOTPSender {
|
||||
return &MockOTPSender{Debug: debug}
|
||||
}
|
||||
|
||||
func (s *MockOTPSender) Send(phone string, otp string) bool {
|
||||
if s.Debug {
|
||||
log.Printf("[MOCK-SMS] کد OTP برای %s: %s", phone, otp)
|
||||
} else {
|
||||
log.Printf("[MOCK-SMS] یک کد OTP برای %s ارسال شد", phone)
|
||||
}
|
||||
// mock همیشه موفق فرض میشود؛ برای شبیهسازی خطای گیتوی میتونی
|
||||
// این مقدار رو شرطی کنی (مثلاً بر اساس یک فلگ تستی).
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user