// Code generated by goctl. DO NOT EDIT.
// goctl 1.10.1

package types

type EmptyResp struct {
}

type Favorite struct {
	Id         string `json:"id"`
	UserId     string `json:"userId"`
	TargetType string `json:"targetType"`
	TargetId   string `json:"targetId"`
	CreatedAt  string `json:"createdAt"`
}

type FavoriteCheckReq struct {
	PathIDReq
	TargetType string `form:"targetType"`
	TargetId   string `form:"targetId"`
}

type FavoriteCheckResp struct {
	Favorited bool `json:"favorited"`
}

type FavoriteListResp struct {
	Items []Favorite `json:"items"`
	Meta  PageMeta   `json:"meta"`
}

type FavoriteReq struct {
	TargetType string `json:"targetType"` // player, shop
	TargetId   string `json:"targetId"`
}

type PageMeta struct {
	Total  int64 `json:"total"`
	Offset int64 `json:"offset"`
	Limit  int64 `json:"limit"`
}

type PageReq struct {
	Offset int64 `form:"offset,default=0"`
	Limit  int64 `form:"limit,default=20"`
}

type PathIDReq struct {
	Id int64 `path:"id"`
}

type SearchReq struct {
	PageReq
	Q          string  `form:"q,optional"`
	MinPrice   float64 `form:"min,optional"`
	MaxPrice   float64 `form:"max,optional"`
	OnlyOnline bool    `form:"onlyOnline,optional"`
	Sort       string  `form:"sort,optional"`
}

type SearchResp struct {
	Items []interface{} `json:"items"` // Mixed items
	Meta  PageMeta      `json:"meta"`
}

type SimpleUser struct {
	Id       string `json:"id"`
	Nickname string `json:"nickname"`
	Avatar   string `json:"avatar"`
}

type UserProfile struct {
	Id                 string            `json:"id"`
	Username           string            `json:"username"`
	Nickname           string            `json:"nickname"`
	Avatar             string            `json:"avatar"`
	Role               string            `json:"role"` // consumer, player, owner, admin
	VerifiedRoles      []string          `json:"verifiedRoles"`
	VerificationStatus map[string]string `json:"verificationStatus"`
	Phone              string            `json:"phone,optional"`
	Bio                string            `json:"bio,optional"`
	CreatedAt          string            `json:"createdAt"`
}
