internal/schema/badge_schema.go (90 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package schema import "github.com/apache/answer/internal/entity" const ( BadgeStatusActive BadgeStatus = "active" BadgeStatusInactive BadgeStatus = "inactive" ) type BadgeStatus string var BadgeStatusMap = map[int8]BadgeStatus{ entity.BadgeStatusActive: BadgeStatusActive, entity.BadgeStatusInactive: BadgeStatusInactive, } var BadgeStatusEMap = map[BadgeStatus]int8{ BadgeStatusActive: entity.BadgeStatusActive, BadgeStatusInactive: entity.BadgeStatusInactive, } // BadgeListInfo get badge list response type BadgeListInfo struct { // badge id ID string `json:"id" ` // badge name Name string `json:"name" ` // badge icon Icon string `json:"icon" ` // badge award count AwardCount int `json:"award_count" ` // badge earned count EarnedCount int64 `json:"earned_count" ` // badge level Level entity.BadgeLevel `json:"level" ` } type GetBadgeListResp struct { // badge list info Badges []*BadgeListInfo `json:"badges" ` // badge group name GroupName string `json:"group_name" ` } type UpdateBadgeStatusReq struct { // badge id ID string `validate:"required" json:"id"` // badge status Status BadgeStatus `validate:"required" json:"status"` } type GetBadgeListPagedReq struct { // page Page int `validate:"omitempty,min=1" form:"page"` // page size PageSize int `validate:"omitempty,min=1" form:"page_size"` // badge status Status BadgeStatus `validate:"omitempty" form:"status"` // query condition Query string `validate:"omitempty" form:"q"` } type GetBadgeListPagedResp struct { // badge id ID string `json:"id" ` // badge name Name string `json:"name" ` // badge description Description string `json:"description" ` // badge icon Icon string `json:"icon" ` // badge award count AwardCount int `json:"award_count" ` // badge earned count Earned bool `json:"earned" ` // badge level Level entity.BadgeLevel `json:"level" ` // badge group name GroupName string `json:"group_name" ` // badge status Status BadgeStatus `json:"status"` } type GetBadgeInfoResp struct { // badge id ID string `json:"id" ` // badge name Name string `json:"name" ` // badge description Description string `json:"description" ` // badge icon Icon string `json:"icon" ` // badge award count AwardCount int `json:"award_count" ` // badge earned count EarnedCount int64 `json:"earned_count" ` // badge is single or multiple IsSingle bool `json:"is_single" ` // badge level Level entity.BadgeLevel `json:"level" ` } type GetBadgeAwardWithPageReq struct { // page Page int `validate:"omitempty,min=1" form:"page"` // page size PageSize int `validate:"omitempty,min=1" form:"page_size"` // badge id BadgeID string `validate:"required" form:"badge_id"` // username Username string `validate:"omitempty,gt=0,lte=100" form:"username"` // user id UserID string `json:"-"` } type GetBadgeAwardWithPageResp struct { // created time CreatedAt int64 `json:"created_at"` // object id ObjectID string `json:"object_id"` // question id QuestionID string `json:"question_id"` // answer id AnswerID string `json:"answer_id"` // comment id CommentID string `json:"comment_id"` // object type ObjectType string `json:"object_type" enums:"question,answer,comment"` // url title UrlTitle string `json:"url_title"` // author user info AuthorUserInfo UserBasicInfo `json:"author_user_info"` } type GetUserBadgeAwardListReq struct { // username Username string `validate:"required,gt=0,lte=100" form:"username"` // user id UserID string `json:"-"` Limit int `json:"-"` } type GetUserBadgeAwardListResp struct { // badge id ID string `json:"id" ` // badge name Name string `json:"name" ` // badge icon Icon string `json:"icon" ` // badge award count EarnedCount int64 `json:"earned_count" ` // badge level Level entity.BadgeLevel `json:"level" ` } type BadgeTplData struct { ProfileURL string }