Files
honoka-chan/internal/schema/api/payment/productlist.go
T
YumeMichi 150ce674ad Implement more endpoints & overhaul [2/n]
Drop LevelDB and move all the things to SQLite.

Implemented endpoints:
/api <unit, accessoryMaterialAll>
/api <unit, accessoryTab>
/live/continue
/live/partyList
/unit/favoriteAccessory (WIP)
/unit/sale

Signed-off-by: Sean Du <do4suki@gmail.com>
2026-04-28 11:44:56 +08:00

121 lines
3.7 KiB
Go

package paymentapischema
type RestrictionInfo struct {
Restricted bool `json:"restricted"`
}
type UnderAgeInfo struct {
BirthSet bool `json:"birth_set"`
HasLimit bool `json:"has_limit"`
LimitAmount any `json:"limit_amount"`
MonthUsed int `json:"month_used"`
}
type SnsProductItem struct {
ItemID int `json:"item_id"`
AddType int `json:"add_type"`
Amount int `json:"amount"`
IsFreebie bool `json:"is_freebie"`
}
type SnsProduct struct {
ProductID string `json:"product_id"`
Name string `json:"name"`
Price int `json:"price"`
CanBuy bool `json:"can_buy"`
ProductType int `json:"product_type"`
ItemList []SnsProductItem `json:"item_list"`
}
type ProductItem struct {
ItemID int `json:"item_id"`
AddType int `json:"add_type"`
Amount int `json:"amount"`
IsFreebie bool `json:"is_freebie"`
IsRankMax bool `json:"is_rank_max,omitempty"`
}
type LimitStatus struct {
TermStartDate string `json:"term_start_date"`
RemainingTime string `json:"remaining_time"`
RemainingCount int `json:"remaining_count"`
}
type Product struct {
ProductID string `json:"product_id"`
Name string `json:"name"`
BannerImgAsset string `json:"banner_img_asset"`
Price int `json:"price"`
CanBuy bool `json:"can_buy"`
ProductType int `json:"product_type"`
AnnounceURL string `json:"announce_url"`
ConfirmURL string `json:"confirm_url"`
ItemList []ProductItem `json:"item_list"`
LimitStatus LimitStatus `json:"limit_status"`
}
type SubscriptionItem struct {
ItemID int `json:"item_id"`
AddType int `json:"add_type"`
Amount int `json:"amount"`
IsFreebie bool `json:"is_freebie"`
}
type LicenseReward struct {
ItemID int `json:"item_id"`
AddType int `json:"add_type"`
Amount int `json:"amount"`
}
type LicenseItem struct {
Seq int `json:"seq"`
RewardList []LicenseReward `json:"reward_list"`
}
type LicenseInfo struct {
Name string `json:"name"`
Items []LicenseItem `json:"items"`
}
type UserStatus struct {
IsLicensed bool `json:"is_licensed"`
}
type SubscriptionStatus struct {
LicenseID int `json:"license_id"`
LicenseType int `json:"license_type"`
LicenseInfo LicenseInfo `json:"license_info"`
UserStatus UserStatus `json:"user_status"`
PurchaseCount int `json:"purchase_count"`
BadgeFlag bool `json:"badge_flag"`
}
type Subscription struct {
ProductID string `json:"product_id"`
Name string `json:"name"`
BannerImgAsset string `json:"banner_img_asset"`
Price int `json:"price"`
CanBuy bool `json:"can_buy"`
ProductType int `json:"product_type"`
ProductURL string `json:"product_url"`
ItemList []SubscriptionItem `json:"item_list"`
LimitStatus LimitStatus `json:"limit_status"`
SubscriptionStatus SubscriptionStatus `json:"subscription_status"`
}
type ProductListData struct {
RestrictionInfo RestrictionInfo `json:"restriction_info"`
UnderAgeInfo UnderAgeInfo `json:"under_age_info"`
SnsProductList []SnsProduct `json:"sns_product_list"`
ProductList []Product `json:"product_list"`
SubscriptionList []Subscription `json:"subscription_list"`
ShowPointShop bool `json:"show_point_shop"`
}
type ProductListResp struct {
Result ProductListData `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}