package appconfig

type updateH5LinksRequest struct {
	Items []h5LinkPayload `json:"items" binding:"required"`
}

type roomDiscoveryConfigRequest struct {
	Scope string `json:"scope" binding:"required"`
}

type runtimeCapabilitiesConfigRequest struct {
	ActivityLeaderboardScope     string `json:"activityLeaderboardScope" binding:"required"`
	ResourceEquipCommandIDPolicy string `json:"resourceEquipCommandIdPolicy" binding:"required"`
}

type roleScopePoliciesConfigRequest struct {
	OrganizationScope                  string `json:"organizationScope" binding:"required"`
	ManagerBaseScope                   string `json:"managerBaseScope" binding:"required"`
	ManagerExpandedScope               string `json:"managerExpandedScope" binding:"required"`
	ManagerRegionExpansionConfigurable bool   `json:"managerRegionExpansionConfigurable"`
}

type h5LinkPayload struct {
	Key   string `json:"key" binding:"required"`
	Label string `json:"label" binding:"required"`
	URL   string `json:"url" binding:"required"`
}

type bannerRequest struct {
	CoverURL             string   `json:"coverUrl" binding:"required"`
	RoomSmallImageURL    string   `json:"roomSmallImageUrl"`
	DiscoverImageURL     string   `json:"discoverImageUrl"`
	BannerType           string   `json:"bannerType" binding:"required"`
	TargetType           string   `json:"targetType"`
	ActivityTemplateID   string   `json:"activityTemplateId"`
	ActivityTemplateCode string   `json:"-"`
	DisplayScope         string   `json:"displayScope"`
	DisplayScopes        []string `json:"displayScopes"`
	Param                string   `json:"param"`
	Status               string   `json:"status" binding:"required"`
	Platform             string   `json:"platform" binding:"required"`
	SortOrder            int      `json:"sortOrder"`
	RegionID             int64    `json:"regionId"`
	CountryCode          string   `json:"countryCode"`
	Description          string   `json:"description"`
	StartsAtMs           int64    `json:"startsAtMs"`
	EndsAtMs             int64    `json:"endsAtMs"`
}

type splashScreenRequest struct {
	CoverURL          string `json:"coverUrl" binding:"required"`
	SplashType        string `json:"splashType" binding:"required"`
	Param             string `json:"param"`
	Status            string `json:"status" binding:"required"`
	Platform          string `json:"platform" binding:"required"`
	SortOrder         int    `json:"sortOrder"`
	RegionID          int64  `json:"regionId"`
	CountryCode       string `json:"countryCode"`
	Description       string `json:"description"`
	DisplayDurationMs int    `json:"displayDurationMs"`
	StartsAtMs        int64  `json:"startsAtMs"`
	EndsAtMs          int64  `json:"endsAtMs"`
}

type popupRequest struct {
	Code              string `json:"code" binding:"required"`
	Name              string `json:"name" binding:"required"`
	ImageURL          string `json:"imageUrl"`
	JumpType          string `json:"jumpType" binding:"required"`
	JumpURL           string `json:"jumpUrl" binding:"required"`
	DisplayPeriodDays int    `json:"displayPeriodDays"`
	Status            string `json:"status" binding:"required"`
	SortOrder         int    `json:"sortOrder"`
	StartsAtMs        int64  `json:"startsAtMs"`
	EndsAtMs          int64  `json:"endsAtMs"`
}

type appVersionRequest struct {
	Platform    string `json:"platform" binding:"required"`
	Version     string `json:"version" binding:"required"`
	BuildNumber int64  `json:"buildNumber" binding:"required"`
	ForceUpdate bool   `json:"forceUpdate"`
	DownloadURL string `json:"downloadUrl" binding:"required"`
	Description string `json:"description"`
}

type exploreTabRequest struct {
	Tab       string `json:"tab" binding:"required"`
	H5URL     string `json:"h5Url" binding:"required"`
	Enabled   bool   `json:"enabled"`
	SortOrder int    `json:"sortOrder"`
}
