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"` Description string `json:"description"` } // BackupScheduleDTO 仅描述调度时间,不包含备份目录、OSS 地址或任何密钥。 type BackupScheduleDTO struct { Enabled bool `json:"enabled"` FullHour int `json:"full_hour"` FullMinute int `json:"full_minute"` BinlogIntervalMinutes int `json:"binlog_interval_minutes"` } type HomeAnnouncementsDTO struct { Items []string `json:"items"` } type HomeConfigDTO struct { Announcements []string `json:"announcements"` Banners []HomeBannerItem `json:"banners"` PublishOptions PublishOptionsDTO `json:"publish_options"` AWRecycle AWRecycleConfig `json:"aw_recycle"` CooperationFeedback CooperationFeedbackConfig `json:"cooperation_feedback"` } // AWRecycleConfig 首页「AW炫彩回收」入口:点击展示可配置图片。 type AWRecycleConfig struct { Title string `json:"title"` Subtitle string `json:"subtitle"` ImageURL string `json:"image_url"` Enabled bool `json:"enabled"` } // CooperationFeedbackConfig 首页「合作与反馈」入口:点击展示可配置图片。 type CooperationFeedbackConfig struct { Title string `json:"title"` Subtitle string `json:"subtitle"` ImageURL string `json:"image_url"` Enabled bool `json:"enabled"` } type OrderAgreementsDTO struct { VirtualAssetPurchase AgreementContentDTO `json:"virtual_asset_purchase"` RenterAgreement AgreementContentDTO `json:"renter_agreement"` } type ListingPublishAgreementsDTO struct { VirtualAssetSale AgreementContentDTO `json:"virtual_asset_sale"` SellerAgreement AgreementContentDTO `json:"seller_agreement"` } type PostRentalNoticeDTO struct { Title string `json:"title"` Content string `json:"content"` } type AgreementContentDTO struct { Title string `json:"title"` Content string `json:"content"` } 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"` DepositRecommend PublishDepositRecommend `json:"deposit_recommend_config"` RatioConfig PublishRatioConfig `json:"ratio_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"` DepositHint string `json:"deposit_hint"` PricePlaceholder string `json:"price_placeholder"` RatioDescription string `json:"ratio_description"` } type PublishDepositRecommend struct { BaseAmount float64 `json:"base_amount"` SkinGroupRules []PublishDepositSkinGroupRule `json:"skin_group_rules"` } type PublishDepositSkinGroupRule struct { GroupKey string `json:"group_key"` Label string `json:"label"` AmountPerItem float64 `json:"amount_per_item"` } 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"` }