Yimaru-BackEnd/internal/domain/mobile_app_version.go
Yared Yemane a719c0daca Add mobile app version management and refresh profile field seeds.
Introduce admin CRUD and public version check APIs for Play Store/App Store releases with force or optional update policies, and update profile dropdown seed data for countries, regions, and learner profile fields.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 06:52:20 -07:00

63 lines
2.1 KiB
Go

package domain
import "time"
const (
MobileAppPlatformAndroid = "ANDROID"
MobileAppPlatformIOS = "IOS"
MobileAppUpdateTypeForce = "FORCE"
MobileAppUpdateTypeOptional = "OPTIONAL"
MobileAppVersionStatusActive = "ACTIVE"
MobileAppVersionStatusInactive = "INACTIVE"
)
type MobileAppVersion struct {
ID int64 `json:"id"`
Platform string `json:"platform"`
VersionName string `json:"version_name"`
VersionCode int32 `json:"version_code"`
UpdateType string `json:"update_type"`
ReleaseNotes *string `json:"release_notes,omitempty"`
StoreURL *string `json:"store_url,omitempty"`
MinSupportedVersionCode *int32 `json:"min_supported_version_code,omitempty"`
Status string `json:"status"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type CreateMobileAppVersionInput struct {
Platform string
VersionName string
VersionCode int32
UpdateType *string
ReleaseNotes *string
StoreURL *string
MinSupportedVersionCode *int32
Status *string
}
type UpdateMobileAppVersionInput struct {
VersionName *string
VersionCode *int32
UpdateType *string
ReleaseNotes *string
StoreURL *string
MinSupportedVersionCode *int32
Status *string
}
// MobileAppVersionCheckResult is returned to mobile clients checking for updates.
type MobileAppVersionCheckResult struct {
Platform string `json:"platform"`
ClientVersionCode int32 `json:"client_version_code"`
LatestVersionName string `json:"latest_version_name"`
LatestVersionCode int32 `json:"latest_version_code"`
UpdateAvailable bool `json:"update_available"`
ForceUpdate bool `json:"force_update"`
UpdateType string `json:"update_type,omitempty"`
ReleaseNotes *string `json:"release_notes,omitempty"`
StoreURL *string `json:"store_url,omitempty"`
}