Files
honoka-chan/internal/handler/api/unit/accessoryall.go
T
YumeMichi cb0200ff29 Migrate accessories to user data
- Add user_accessory as the per-user accessory inventory table.
- Migrate old accessory wear records to user-owned accessory ids, including legacy common_accessory_m lookups for old installs.
- Allocate default accessories for newly created users and update accessory reads to use user_accessory at runtime.
- Validate accessory ownership when wearing accessories and keep existing accessory-based responses working.

Signed-off-by: Sean Du <do4suki@gmail.com>
2026-06-13 07:36:21 +08:00

44 lines
1.1 KiB
Go

package unit
import (
unitapischema "honoka-chan/internal/schema/api/unit"
"honoka-chan/internal/session"
"time"
"github.com/gin-gonic/gin"
)
func unitAccessoryAll(ctx *gin.Context) (res any, err error) {
ss := session.Get(ctx)
accessoryList := []unitapischema.AccessoryList{}
err = ss.UserEng.Table("user_accessory").Where("user_id = ?", ss.UserID).Find(&accessoryList)
if err != nil {
return nil, err
}
for k := range accessoryList {
accessoryList[k].NextExp = 0
accessoryList[k].Level = 8
accessoryList[k].MaxLevel = 8
accessoryList[k].RankUpCount = 4
accessoryList[k].FavoriteFlag = true
}
wearingInfo := []unitapischema.WearingInfo{}
err = ss.UserEng.Table("user_accessory_wear").Where("user_id = ?", ss.UserID).Find(&wearingInfo)
if err != nil {
return nil, err
}
res = unitapischema.AccessoryAllResp{
Result: unitapischema.AccessoryAllData{
AccessoryList: accessoryList,
WearingInfo: wearingInfo,
EspecialCreateFlag: false,
},
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
return res, err
}