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>
This commit is contained in:
2026-04-28 11:44:56 +08:00
parent 1500821f3e
commit 150ce674ad
218 changed files with 2993 additions and 2160 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
package album
package albumschema
type UnitList struct {
UnitID int `json:"unit_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package announce
package announceschema
type CheckStateData struct {
HasUnreadAnnounce bool `json:"has_unread_announce"`
+1 -1
View File
@@ -1,4 +1,4 @@
package album
package albumapischema
type UnitList struct {
UnitID int `json:"unit_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package api
package apischema
type ApiReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package award
package awardapischema
type Info struct {
AwardID int `json:"award_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package background
package backgroundapischema
type Info struct {
BackgroundID int `json:"background_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package banner
package bannerapischema
type BannerList struct {
BannerType int `json:"banner_type"`
+1 -1
View File
@@ -1,4 +1,4 @@
package challenge
package challengeapischema
type InfoResp struct {
Result []any `json:"result"`
+1 -1
View File
@@ -1,4 +1,4 @@
package costume
package costumeapischema
type CostumeList struct {
UnitID int `json:"unit_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package eventscenario
package eventscenarioapischema
type ChapterList struct {
EventScenarioID int `json:"event_scenario_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package exchange
package exchangeapischema
type ExchangePointList struct {
Rarity int `json:"rarity"`
+1 -1
View File
@@ -1,4 +1,4 @@
package live
package liveapischema
type LiveList struct {
LiveDifficultyID int `json:"live_difficulty_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package live
package liveapischema
type NormalLiveStatusList struct {
LiveDifficultyID int `json:"live_difficulty_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package liveicon
package liveiconapischema
type InfoData struct {
LiveNotesIconList []int `json:"live_notes_icon_list"`
+1 -1
View File
@@ -1,4 +1,4 @@
package livese
package liveseapischema
type InfoData struct {
LiveSeList []int `json:"live_se_list"`
+1 -1
View File
@@ -1,4 +1,4 @@
package login
package loginapischema
type LicenseInfo struct {
LicenseList []any `json:"license_list"`
+1 -1
View File
@@ -1,4 +1,4 @@
package login
package loginapischema
type Notification struct {
Push bool `json:"push"`
+1 -1
View File
@@ -1,4 +1,4 @@
package marathon
package marathonapischema
type InfoResp struct {
Result []any `json:"result"`
@@ -1,4 +1,4 @@
package multiunit
package multiunitapischema
type ChapterList struct {
MultiUnitScenarioID int `json:"multi_unit_scenario_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package museum
package museumapischema
type Parameter struct {
Smile int `json:"smile"`
@@ -1,4 +1,4 @@
package navigation
package navigationapischema
type SpecialCutinData struct {
SpecialCutinList []any `json:"special_cutin_list"`
+1 -1
View File
@@ -1,4 +1,4 @@
package notice
package noticeapischema
type MarqueeData struct {
ItemCount int `json:"item_count"`
+2 -2
View File
@@ -1,4 +1,4 @@
package payment
package paymentapischema
type RestrictionInfo struct {
Restricted bool `json:"restricted"`
@@ -84,7 +84,7 @@ type UserStatus struct {
type SubscriptionStatus struct {
LicenseID int `json:"license_id"`
LicenseType int `json:"license_type"`
LicenseInfo LicenseInfo `json:"license_info,omitempty"`
LicenseInfo LicenseInfo `json:"license_info"`
UserStatus UserStatus `json:"user_status"`
PurchaseCount int `json:"purchase_count"`
BadgeFlag bool `json:"badge_flag"`
+9 -2
View File
@@ -1,7 +1,14 @@
package profile
package profileapischema
type CardRankingData struct {
UnitID int `json:"unit_id"`
TotalLove int `json:"total_love"`
Rank int `json:"rank"`
SignFlag bool `json:"sign_flag"`
}
type CardRankingResp struct {
Result []any `json:"result"`
Result any `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
+1 -1
View File
@@ -1,4 +1,4 @@
package profile
package profileapischema
type UnitData struct {
UnitOwningUserID int `xorm:"unit_owning_user_id pk autoincr" json:"unit_owning_user_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package profile
package profileapischema
type LiveCntData struct {
Difficulty int `json:"difficulty"`
+1 -1
View File
@@ -1,4 +1,4 @@
package scenario
package scenarioapischema
type StatusList struct {
ScenarioID int `json:"scenario_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package subscenario
package subscenarioapischema
type StatusList struct {
SubscenarioID int `json:"subscenario_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitapischema
type AccessoryList struct {
AccessoryOwningUserID int `json:"accessory_owning_user_id" xorm:"accessory_owning_user_id"`
@@ -0,0 +1,17 @@
package unitapischema
type AccessoryMaterialList struct {
AccessoryID int `json:"accessory_id"`
Amount int `json:"amount"`
}
type AccessoryMaterialAllData struct {
AccessoryMaterialList []AccessoryMaterialList `json:"accessory_material_list"`
}
type AccessoryMaterialAllResp struct {
Result AccessoryMaterialAllData `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
+22
View File
@@ -0,0 +1,22 @@
package unitapischema
type AssetList struct {
UnitTypeID int `json:"unit_type_id"`
AssetPath string `json:"asset_path"`
}
type TabList struct {
TabName string `json:"tab_name"`
AssetList []AssetList `json:"asset_list"`
}
type AccessoryTabData struct {
TabList []TabList `json:"tab_list"`
}
type AccessoryTabResp struct {
Result AccessoryTabData `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitapischema
type Costume struct {
UnitID int `json:"unit_id"`
+2 -2
View File
@@ -1,4 +1,4 @@
package unit
package unitapischema
type UserDeckData struct {
ID int `xorm:"id pk autoincr"`
@@ -26,7 +26,7 @@ type UnitDeckData struct {
IsSigned bool `xorm:"is_signed" json:"is_signed"`
BeforeLove int `xorm:"before_love" json:"before_love"`
MaxLove int `xorm:"max_love" json:"max_love"`
InsertData int64 `xorm:"insert_date" json:"-"`
InsertDate int64 `xorm:"insert_date" json:"-"`
}
type UnitOwningUserIds struct {
@@ -1,4 +1,4 @@
package unit
package unitapischema
type SkillEquipCount struct {
UnitRemovableSkillId int `xorm:"unit_removable_skill_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitapischema
type SupporterList struct {
UnitID int `json:"unit_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package user
package userapischema
type User struct {
UserID int `json:"user_id"`
+6 -40
View File
@@ -1,44 +1,10 @@
package user
package userapischema
type LpRecoveryItem struct {
ItemID int `json:"item_id"`
Amount int `json:"amount"`
}
type UserInfo struct {
UserID int `json:"user_id"`
Name string `json:"name"`
Level int `json:"level"`
Exp int `json:"exp"`
PreviousExp int `json:"previous_exp"`
NextExp int `json:"next_exp"`
GameCoin int `json:"game_coin"`
SnsCoin int `json:"sns_coin"`
FreeSnsCoin int `json:"free_sns_coin"`
PaidSnsCoin int `json:"paid_sns_coin"`
SocialPoint int `json:"social_point"`
UnitMax int `json:"unit_max"`
WaitingUnitMax int `json:"waiting_unit_max"`
EnergyMax int `json:"energy_max"`
EnergyFullTime string `json:"energy_full_time"`
LicenseLiveEnergyRecoverlyTime int `json:"license_live_energy_recoverly_time"`
EnergyFullNeedTime int `json:"energy_full_need_time"`
OverMaxEnergy int `json:"over_max_energy"`
TrainingEnergy int `json:"training_energy"`
TrainingEnergyMax int `json:"training_energy_max"`
FriendMax int `json:"friend_max"`
InviteCode string `json:"invite_code"`
InsertDate string `json:"insert_date"`
UpdateDate string `json:"update_date"`
TutorialState int `json:"tutorial_state"`
DiamondCoin int `json:"diamond_coin"`
CrystalCoin int `json:"crystal_coin"`
LpRecoveryItem []LpRecoveryItem `json:"lp_recovery_item"`
}
import userschema "honoka-chan/internal/schema/user"
type InfoResp struct {
Result UserInfo `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
Result userschema.UserInfo `json:"result"`
Status int `json:"status"`
CommandNum bool `json:"commandNum"`
TimeStamp int64 `json:"timeStamp"`
}
+1 -1
View File
@@ -1,4 +1,4 @@
package award
package awardschema
type SetResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package background
package backgroundschema
type SetResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package download
package downloadschema
type AdditionalReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package download
package downloadschema
type BatchReq struct {
ClientVersion string `json:"client_version"`
+1 -1
View File
@@ -1,4 +1,4 @@
package download
package downloadschema
type EventResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package download
package downloadschema
type UpdateReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package download
package downloadschema
type UrlReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package event
package eventschema
type TargetList struct {
Position int `json:"position"`
+1 -1
View File
@@ -1,4 +1,4 @@
package gdpr
package gdprschema
type GetData struct {
EnableGdpr bool `json:"enable_gdpr"`
+1 -1
View File
@@ -1,4 +1,4 @@
package ghome
package ghomeschema
type ActiveData struct {
Message string `json:"message"`
+1 -1
View File
@@ -1,4 +1,4 @@
package ghome
package ghomeschema
type GetCodeResp struct {
Code int `json:"code"`
+1 -1
View File
@@ -1,4 +1,4 @@
package ghome
package ghomeschema
type GuestStatusData struct {
Disablead int `json:"disablead"`
+1 -1
View File
@@ -1,4 +1,4 @@
package ghome
package ghomeschema
type AgreementData struct {
}
+1 -1
View File
@@ -1,4 +1,4 @@
package lbonus
package lbonusschema
type Item struct {
ItemID int `json:"item_id"`
+13
View File
@@ -0,0 +1,13 @@
package liveschema
type ContinueData struct {
BeforeSnsCoin int `json:"before_sns_coin"`
AfterSnsCoin int `json:"after_sns_coin"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type ContinueResp struct {
ResponseData ContinueData `json:"response_data"`
ReleaseInfo []any `json:"release_info"`
StatusCode int `json:"status_code"`
}
+1 -1
View File
@@ -1,4 +1,4 @@
package live
package liveschema
type GameOverResp struct {
ResponseData []any `json:"response_data"`
+55
View File
@@ -0,0 +1,55 @@
package liveschema
import userschema "honoka-chan/internal/schema/user"
type CenterUnitInfo struct {
UnitOwningUserID int `json:"unit_owning_user_id"`
UnitID int `json:"unit_id"`
Exp int `json:"exp"`
NextExp int `json:"next_exp"`
Level int `json:"level"`
LevelLimitID int `json:"level_limit_id"`
MaxLevel int `json:"max_level"`
Rank int `json:"rank"`
MaxRank int `json:"max_rank"`
Love int `json:"love"`
MaxLove int `json:"max_love"`
UnitSkillLevel int `json:"unit_skill_level"`
MaxHp int `json:"max_hp"`
FavoriteFlag bool `json:"favorite_flag"`
DisplayRank int `json:"display_rank"`
UnitSkillExp int `json:"unit_skill_exp"`
UnitRemovableSkillCapacity int `json:"unit_removable_skill_capacity"`
Attribute int `json:"attribute"`
Smile int `json:"smile"`
Cute int `json:"cute"`
Cool int `json:"cool"`
IsLoveMax bool `json:"is_love_max"`
IsLevelMax bool `json:"is_level_max"`
IsRankMax bool `json:"is_rank_max"`
IsSigned bool `json:"is_signed"`
IsSkillLevelMax bool `json:"is_skill_level_max"`
SettingAwardID int `json:"setting_award_id"`
RemovableSkillIds []int `json:"removable_skill_ids"`
}
type PartyList struct {
UserInfo userschema.UserInfo `json:"user_info"`
CenterUnitInfo CenterUnitInfo `json:"center_unit_info"`
SettingAwardID int `json:"setting_award_id"`
AvailableSocialPoint int `json:"available_social_point"`
FriendStatus int `json:"friend_statuses"`
}
type PartyListData struct {
PartyList []PartyList `json:"party_list"`
TrainingEnergy int `json:"training_energy"`
TrainingEnergyMax int `json:"training_energy_max"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type PartyListResp struct {
ResponseData PartyListData `json:"response_data"`
ReleaseInfo []any `json:"release_info"`
StatusCode int `json:"status_code"`
}
+9 -1
View File
@@ -1,4 +1,4 @@
package live
package liveschema
type PlayReq struct {
Module string `json:"module"`
@@ -31,6 +31,14 @@ type NotesList struct {
type LiveInfo struct {
LiveDifficultyID int `json:"live_difficulty_id"`
IsRandom bool `json:"is_random"`
ARankScore int `json:"-"`
BRankScore int `json:"-"`
CRankScore int `json:"-"`
SRankScore int `json:"-"`
ARankCombo int `json:"-"`
BRankCombo int `json:"-"`
CRankCombo int `json:"-"`
SRankCombo int `json:"-"`
AcFlag int `json:"ac_flag"`
SwingFlag int `json:"swing_flag"`
NotesList []NotesList `json:"notes_list"`
+24 -6
View File
@@ -1,4 +1,4 @@
package live
package liveschema
type PlayScoreReq struct {
Module string `json:"module"`
@@ -18,7 +18,9 @@ type On struct {
PreciseList any `json:"precise_list"`
DeckInfo any `json:"deck_info"`
TapAdjust any `json:"tap_adjust"`
LiveSetting any `json:"live_setting,omitempty"`
CanReplay bool `json:"can_replay"`
TriggerLog any `json:"trigger_log,omitempty"`
}
type Off struct {
@@ -30,19 +32,35 @@ type Off struct {
PreciseList any `json:"precise_list"`
DeckInfo any `json:"deck_info"`
TapAdjust any `json:"tap_adjust"`
LiveSetting any `json:"live_setting,omitempty"`
CanReplay bool `json:"can_replay"`
TriggerLog any `json:"trigger_log,omitempty"`
}
type Skill struct {
HasRecord bool `json:"has_record"`
LiveInfo LiveInfo `json:"live_info"`
RandomSeed any `json:"random_seed"`
MaxCombo any `json:"max_combo"`
UpdateDate any `json:"update_date"`
PreciseList any `json:"precise_list"`
DeckInfo any `json:"deck_info"`
TapAdjust any `json:"tap_adjust"`
LiveSetting any `json:"live_setting,omitempty"`
CanReplay bool `json:"can_replay"`
TriggerLog any `json:"trigger_log,omitempty"`
}
type PreciseScoreData struct {
On On `json:"on"`
Off Off `json:"off"`
On Skill `json:"on"`
Off Skill `json:"off"`
RankInfo []RankInfo `json:"rank_info"`
CanActivateEffect bool `json:"can_activate_effect"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type PreciseScoreResp struct {
ResponseData PreciseScoreData `json:"response_data"`
ReleaseInfo []any `json:"release_info"`
StatusCode int `json:"status_code"`
ResponseData any `json:"response_data"`
ReleaseInfo []any `json:"release_info"`
StatusCode int `json:"status_code"`
}
+27 -67
View File
@@ -1,4 +1,9 @@
package live
package liveschema
import (
"honoka-chan/internal/constant"
userschema "honoka-chan/internal/schema/user"
)
type RewardReq struct {
Module string `json:"module"`
@@ -31,26 +36,31 @@ type Icon struct {
}
type LiveSetting struct {
StringSize int `json:"string_size"`
PreciseScoreAutoUpdateFlag bool `json:"precise_score_auto_update_flag"`
SeID int `json:"se_id"`
CutinBrightness int `json:"cutin_brightness"`
RandomValue int `json:"random_value"`
PreciseScoreUpdateType int `json:"precise_score_update_type"`
EffectFlag bool `json:"effect_flag"`
NotesSpeed float64 `json:"notes_speed"`
Icon Icon `json:"icon"`
CutinType int `json:"cutin_type"`
StringSize int `json:"string_size"`
PreciseScoreAutoUpdateFlag bool `json:"precise_score_auto_update_flag"`
SeID int `json:"se_id"`
CutinBrightness int `json:"cutin_brightness"`
RandomValue int `json:"random_value"`
PreciseScoreUpdateType constant.PreciseScoreUpdateType `json:"precise_score_update_type"`
EffectFlag bool `json:"effect_flag"`
NotesSpeed float64 `json:"notes_speed"`
Icon Icon `json:"icon"`
CutinType int `json:"cutin_type"`
BackgroundID any `json:"background_id"`
}
type PreciseList struct {
Effect int `json:"effect"`
Count int `json:"count"`
Tap float64 `json:"tap"`
NoteNumber int `json:"note_number"`
Position int `json:"position"`
Effect int `json:"effect"`
Accuracy int `json:"accuracy"`
Tap float64 `json:"tap"`
IsSame bool `json:"is_same"`
Release any `json:"release"`
Position int `json:"position"`
NoteNumber int `json:"note_number"`
FirstTouch any `json:"first_touch"`
Tp any `json:"tp"`
Tpf any `json:"tpf"`
}
type BackgroundScore struct {
@@ -208,56 +218,6 @@ type PlayRewardUnitList struct {
InsertData int64 `xorm:"insert_date" json:"-"`
}
type BeforeUserInfo struct {
Level int `json:"level"`
Exp int `json:"exp"`
PreviousExp int `json:"previous_exp"`
NextExp int `json:"next_exp"`
GameCoin int `json:"game_coin"`
SnsCoin int `json:"sns_coin"`
FreeSnsCoin int `json:"free_sns_coin"`
PaidSnsCoin int `json:"paid_sns_coin"`
SocialPoint int `json:"social_point"`
UnitMax int `json:"unit_max"`
WaitingUnitMax int `json:"waiting_unit_max"`
CurrentEnergy int `json:"current_energy"`
EnergyMax int `json:"energy_max"`
TrainingEnergy int `json:"training_energy"`
TrainingEnergyMax int `json:"training_energy_max"`
EnergyFullTime string `json:"energy_full_time"`
LicenseLiveEnergyRecoverlyTime int `json:"license_live_energy_recoverly_time"`
FriendMax int `json:"friend_max"`
TutorialState int `json:"tutorial_state"`
OverMaxEnergy int `json:"over_max_energy"`
UnlockRandomLiveMuse int `json:"unlock_random_live_muse"`
UnlockRandomLiveAqours int `json:"unlock_random_live_aqours"`
}
type AfterUserInfo struct {
Level int `json:"level"`
Exp int `json:"exp"`
PreviousExp int `json:"previous_exp"`
NextExp int `json:"next_exp"`
GameCoin int `json:"game_coin"`
SnsCoin int `json:"sns_coin"`
FreeSnsCoin int `json:"free_sns_coin"`
PaidSnsCoin int `json:"paid_sns_coin"`
SocialPoint int `json:"social_point"`
UnitMax int `json:"unit_max"`
WaitingUnitMax int `json:"waiting_unit_max"`
CurrentEnergy int `json:"current_energy"`
EnergyMax int `json:"energy_max"`
TrainingEnergy int `json:"training_energy"`
TrainingEnergyMax int `json:"training_energy_max"`
EnergyFullTime string `json:"energy_full_time"`
LicenseLiveEnergyRecoverlyTime int `json:"license_live_energy_recoverly_time"`
FriendMax int `json:"friend_max"`
TutorialState int `json:"tutorial_state"`
OverMaxEnergy int `json:"over_max_energy"`
UnlockRandomLiveMuse int `json:"unlock_random_live_muse"`
UnlockRandomLiveAqours int `json:"unlock_random_live_aqours"`
}
type NextLevelInfo struct {
Level int `json:"level"`
FromExp int `json:"from_exp"`
@@ -335,8 +295,8 @@ type RewardData struct {
IsEffortPointVisible bool `json:"is_effort_point_visible"`
LimitedEffortBox []any `json:"limited_effort_box"`
UnitList []PlayRewardUnitList `json:"unit_list"`
BeforeUserInfo BeforeUserInfo `json:"before_user_info"`
AfterUserInfo AfterUserInfo `json:"after_user_info"`
BeforeUserInfo userschema.UserInfo `json:"before_user_info"`
AfterUserInfo userschema.UserInfo `json:"after_user_info"`
NextLevelInfo []NextLevelInfo `json:"next_level_info"`
GoalAccompInfo GoalAccompInfo `json:"goal_accomp_info"`
SpecialRewardInfo []any `json:"special_reward_info"`
+1 -1
View File
@@ -1,4 +1,4 @@
package login
package loginschema
type AuthKeyData struct {
AuthorizeToken string `json:"authorize_token"`
+1 -1
View File
@@ -1,4 +1,4 @@
package login
package loginschema
type LoginData struct {
AuthorizeToken string `json:"authorize_token"`
+1 -1
View File
@@ -1,4 +1,4 @@
package multiunit
package multiunitschema
type ScenarioStartUpReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package museum
package museumschema
type Parameter struct {
Smile int `json:"smile"`
+1 -1
View File
@@ -1,4 +1,4 @@
package notice
package noticeschema
type FriendGreetingData struct {
NextId int `json:"next_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package notice
package noticeschema
type FriendVarietyData struct {
ItemCount int `json:"item_count"`
@@ -1,4 +1,4 @@
package notice
package noticeschema
type UserGreetingData struct {
ItemCount int `json:"item_count"`
+9 -9
View File
@@ -1,15 +1,15 @@
package payment
package paymentschema
import "honoka-chan/internal/schema/api/payment"
import paymentapischema "honoka-chan/internal/schema/api/payment"
type ProductListData struct {
RestrictionInfo payment.RestrictionInfo `json:"restriction_info"`
UnderAgeInfo payment.UnderAgeInfo `json:"under_age_info"`
SnsProductList []any `json:"sns_product_list"`
ProductList []any `json:"product_list"`
SubscriptionList []any `json:"subscription_list"`
ShowPointShop bool `json:"show_point_shop"`
ServerTimestamp int64 `json:"server_timestamp"`
RestrictionInfo paymentapischema.RestrictionInfo `json:"restriction_info"`
UnderAgeInfo paymentapischema.UnderAgeInfo `json:"under_age_info"`
SnsProductList []any `json:"sns_product_list"`
ProductList []any `json:"product_list"`
SubscriptionList []any `json:"subscription_list"`
ShowPointShop bool `json:"show_point_shop"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type ProductListResp struct {
+1 -1
View File
@@ -1,4 +1,4 @@
package personalnotice
package personalnoticeschema
type GetData struct {
HasNotice bool `json:"has_notice"`
+1 -1
View File
@@ -1,4 +1,4 @@
package profile
package profileschema
type RegisterResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package scenario
package scenarioschema
type StartUpReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package subscenario
package subscenarioschema
type StartUpReq struct {
Module string `json:"module"`
+1 -1
View File
@@ -1,4 +1,4 @@
package tos
package tosschema
type CheckData struct {
TosID int `json:"tos_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitschema
type UnitDeckDetail struct {
Position int `json:"position"`
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitschema
type DeckNameReq struct {
Module string `json:"module"`
+11 -1
View File
@@ -1,4 +1,14 @@
package unit
package unitschema
type FavoriteReq struct {
Module string `json:"module"`
Action string `json:"action"`
TimeStamp int64 `json:"timeStamp"`
Mgd int `json:"mgd"`
FavoriteFlag int `json:"favorite_flag"`
UnitOwningUserID int `json:"unit_owning_user_id"`
CommandNum string `json:"commandNum"`
}
type FavoriteResp struct {
ResponseData []any `json:"response_data"`
@@ -1,4 +1,4 @@
package unit
package unitschema
type SkillRemove struct {
UnitRemovableSkillID int `json:"unit_removable_skill_id"`
+48
View File
@@ -0,0 +1,48 @@
package unitschema
import userschema "honoka-chan/internal/schema/user"
type SaleReq struct {
Module string `json:"module"`
Action string `json:"action"`
TimeStamp int `json:"timeStamp"`
Mgd int `json:"mgd"`
UnitSupportList []any `json:"unit_support_list"`
UnitOwningUserID []int `json:"unit_owning_user_id"`
CommandNum string `json:"commandNum"`
}
type Detail struct {
UnitOwningUserID int `json:"unit_owning_user_id"`
UnitID int `json:"unit_id"`
IsSigned bool `json:"is_signed"`
Price int `json:"price"`
}
type OwningInfo struct {
UnitRemovableSkillID int `json:"unit_removable_skill_id"`
TotalAmount int `json:"total_amount"`
EquippedAmount int `json:"equipped_amount"`
InsertDate string `json:"insert_date"`
}
type UnitRemovableSkill struct {
OwningInfo []OwningInfo `json:"owning_info"`
}
type SaleData struct {
Total int `json:"total"`
Detail []Detail `json:"detail"`
BeforeUserInfo userschema.UserInfo `json:"before_user_info"`
AfterUserInfo userschema.UserInfo `json:"after_user_info"`
RewardBoxFlag bool `json:"reward_box_flag"`
GetExchangePointList []any `json:"get_exchange_point_list"`
UnitRemovableSkill UnitRemovableSkill `json:"unit_removable_skill"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type SaleResp struct {
ResponseData SaleData `json:"response_data"`
ReleaseInfo []any `json:"release_info"`
StatusCode int `json:"status_code"`
}
+11 -1
View File
@@ -1,4 +1,14 @@
package unit
package unitschema
type SetDisplayRankReq struct {
Module string `json:"module"`
Action string `json:"action"`
TimeStamp int64 `json:"timeStamp"`
Mgd int `json:"mgd"`
UnitOwningUserID int `json:"unit_owning_user_id"`
DisplayRank int `json:"display_rank"`
CommandNum string `json:"commandNum"`
}
type SetDisplayRankResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package unit
package unitschema
type AccessoryRemove struct {
AccessoryOwningUserID int `json:"accessory_owning_user_id"`
+1 -1
View File
@@ -1,4 +1,4 @@
package user
package userschema
type ChangeNameData struct {
BeforeName string `json:"before_name"`
+1 -1
View File
@@ -1,4 +1,4 @@
package user
package userschema
type ChangeNaviResp struct {
ResponseData []any `json:"response_data"`
+1 -1
View File
@@ -1,4 +1,4 @@
package user
package userschema
type SetNotificationTokenResp struct {
ResponseData []any `json:"response_data"`
+42 -5
View File
@@ -1,6 +1,43 @@
package user
package userschema
import "honoka-chan/internal/schema/api/user"
type LpRecoveryItem struct {
ItemID int `json:"item_id"`
Amount int `json:"amount"`
}
type UserInfo struct {
UserID int `json:"user_id"`
Name string `json:"name"`
Level int `json:"level"`
Exp int `json:"exp"`
PreviousExp int `json:"previous_exp"`
NextExp int `json:"next_exp"`
GameCoin int `json:"game_coin"`
SnsCoin int `json:"sns_coin"`
FreeSnsCoin int `json:"free_sns_coin"`
PaidSnsCoin int `json:"paid_sns_coin"`
SocialPoint int `json:"social_point"`
UnitMax int `json:"unit_max"`
WaitingUnitMax int `json:"waiting_unit_max"`
CurrentEnergy int `json:"current_energy"`
EnergyMax int `json:"energy_max"`
EnergyFullTime string `json:"energy_full_time"`
LicenseLiveEnergyRecoverlyTime int `json:"license_live_energy_recoverly_time"`
EnergyFullNeedTime int `json:"energy_full_need_time"`
OverMaxEnergy int `json:"over_max_energy"`
TrainingEnergy int `json:"training_energy"`
TrainingEnergyMax int `json:"training_energy_max"`
FriendMax int `json:"friend_max"`
InviteCode string `json:"invite_code"`
InsertDate string `json:"insert_date"`
UpdateDate string `json:"update_date"`
TutorialState int `json:"tutorial_state"`
DiamondCoin int `json:"diamond_coin"`
CrystalCoin int `json:"crystal_coin"`
UnlockRandomLiveMuse int `json:"unlock_random_live_muse"`
UnlockRandomLiveAqours int `json:"unlock_random_live_aqours"`
// LpRecoveryItem []LpRecoveryItem `json:"lp_recovery_item"`
}
type Birth struct {
BirthMonth int `json:"birth_month"`
@@ -8,9 +45,9 @@ type Birth struct {
}
type UserInfoData struct {
User user.UserInfo `json:"user"`
Birth Birth `json:"birth"`
ServerTimestamp int64 `json:"server_timestamp"`
User UserInfo `json:"user"`
Birth Birth `json:"birth"`
ServerTimestamp int64 `json:"server_timestamp"`
}
type UserInfoResp struct {
+1 -1
View File
@@ -1,4 +1,4 @@
package webui
package webuischema
type Msg struct {
Code int `json:"code"`