package systemconfig import "time" type ConfigDTO struct { ID uint64 `json:"id"` Key string `json:"key"` Value string `json:"value"` Description string `json:"description"` UpdatedBy *uint64 `json:"updated_by"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type UpdateRequest struct { Value string `json:"value" binding:"required"` Description string `json:"description"` } type HomeAnnouncementsDTO struct { Items []string `json:"items"` } type HomeConfigDTO struct { Announcements []string `json:"announcements"` Banners []HomeBannerItem `json:"banners"` PublishOptions PublishOptionsDTO `json:"publish_options"` } type HomeBannerItem struct { Eyebrow string `json:"eyebrow"` Title string `json:"title"` Badge string `json:"badge"` Pill string `json:"pill"` Tone string `json:"tone"` ImageURL string `json:"image_url,omitempty"` } type PublishOptionsDTO struct { ServerOptions []string `json:"server_options"` FaceOptions []string `json:"face_options"` RankOptions []string `json:"rank_options"` InsuranceOptions []string `json:"insurance_options"` LevelOptions []string `json:"level_options"` LoginMethodOptions []string `json:"login_method_options"` RegionOptions []string `json:"region_options"` SkinGroups []PublishOptionGroup `json:"skin_groups"` QuantityItems []PublishQuantityItem `json:"quantity_items"` ScreenshotSlots []PublishScreenshotSlot `json:"screenshot_slots"` BanRecordOptions []string `json:"ban_record_options"` BanEvidenceOptions []string `json:"ban_evidence_options"` FireLevelMin int `json:"fire_level_min"` PriceConfig PublishPriceConfig `json:"price_config"` RatioConfig PublishRatioConfig `json:"ratio_config"` SalePriceConfig PublishSalePriceConfig `json:"sale_price_config"` } type PublishOptionGroup struct { Key string `json:"key"` Title string `json:"title"` Options []string `json:"options"` } type PublishQuantityItem struct { Key string `json:"key"` Label string `json:"label"` Price string `json:"price"` Placeholder string `json:"placeholder,omitempty"` } type PublishScreenshotSlot struct { Key string `json:"key"` Label string `json:"label"` Required bool `json:"required"` Hint string `json:"hint"` } type PublishPriceConfig struct { DepositPlaceholder string `json:"deposit_placeholder"` PricePlaceholder string `json:"price_placeholder"` RatioDescription string `json:"ratio_description"` } type PublishRatioConfig struct { InsuranceBaseRatios []PublishInsuranceBaseRatio `json:"insurance_base_ratios"` ConfigItems []PublishRatioConfigItem `json:"config_items"` CoinCorrections []PublishCoinCorrection `json:"coin_corrections"` } type PublishInsuranceBaseRatio struct { Insurance string `json:"insurance"` Ratio float64 `json:"ratio"` } type PublishRatioConfigItem struct { Key string `json:"key"` Label string `json:"label"` Kind string `json:"kind"` GroupKey string `json:"group_key,omitempty"` MissingPenalty float64 `json:"missing_penalty"` } type PublishCoinCorrection struct { ThresholdM float64 `json:"threshold_m"` Correction float64 `json:"correction"` } type PublishSalePriceConfig struct { FixedMarkupRules []PublishSaleFixedMarkupRule `json:"fixed_markup_rules"` RatioAdjustmentRules []PublishSaleRatioAdjustmentRule `json:"ratio_adjustment_rules"` } type PublishSaleFixedMarkupRule struct { MinM float64 `json:"min_m"` MaxM float64 `json:"max_m"` MarkupAmount float64 `json:"markup_amount"` } type PublishSaleRatioAdjustmentRule struct { MinM float64 `json:"min_m"` MaxM float64 `json:"max_m,omitempty"` RatioSubtract float64 `json:"ratio_subtract"` }