Files
hfb_sys/backend/internal/modules/systemconfig/dto.go
T

174 lines
5.6 KiB
Go

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"`
}
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"`
}