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

package types

type AppealReq struct {
	DisputePathId
	Reason string `json:"reason"`
}

type CreateDisputeReq struct {
	DisputePathId
	Reason   string   `json:"reason"`
	Evidence []string `json:"evidence"`
}

type Dispute struct {
	Id                 int64    `json:"id,string"`
	OrderId            int64    `json:"orderId,string"`
	InitiatorId        int64    `json:"initiatorId,string"`
	InitiatorName      string   `json:"initiatorName"`
	RespondentId       int64    `json:"respondentId,string"`
	Reason             string   `json:"reason"`
	Evidence           []string `json:"evidence"`
	Status             string   `json:"status"`
	Result             string   `json:"result,optional"`
	RespondentReason   string   `json:"respondentReason,optional"`
	RespondentEvidence []string `json:"respondentEvidence"`
	AppealReason       string   `json:"appealReason,optional"`
	AppealedAt         string   `json:"appealedAt,optional"`
	ResolvedBy         int64    `json:"resolvedBy,string,optional"`
	ResolvedAt         string   `json:"resolvedAt,optional"`
	CreatedAt          string   `json:"createdAt"`
	UpdatedAt          string   `json:"updatedAt"`
}

type DisputeListReq struct {
	PageReq
	Status string `form:"status,optional"`
}

type DisputeListResp struct {
	Items []Dispute `json:"items"`
	Meta  PageMeta  `json:"meta"`
}

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

type DisputeResponseReq struct {
	DisputePathId
	Reason   string   `json:"reason"`
	Evidence []string `json:"evidence"`
}

type EmptyResp struct {
}

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