| /* |
| * 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 |
| |
| // AddReportReq add report request |
| type AddReportReq struct { |
| // object id |
| ObjectID string `validate:"required,gt=0,lte=20" json:"object_id"` |
| // report type |
| ReportType int `validate:"required" json:"report_type"` |
| // report content |
| Content string `validate:"omitempty,gt=0,lte=500" json:"content"` |
| // user id |
| UserID string `json:"-"` |
| CaptchaID string `json:"captcha_id"` // captcha_id |
| CaptchaCode string `json:"captcha_code"` |
| } |
| |
| // GetReportListReq get report list all request |
| type GetReportListReq struct { |
| // report source |
| Source string `validate:"required,oneof=question answer comment" form:"source"` |
| } |
| |
| // GetReportTypeResp get report response |
| type GetReportTypeResp struct { |
| // report name |
| Name string `json:"name"` |
| // report description |
| Description string `json:"description"` |
| // report source |
| Source string `json:"source"` |
| // report type |
| Type int `json:"type"` |
| // is have content |
| HaveContent bool `json:"have_content"` |
| // content type |
| ContentType string `json:"content_type"` |
| } |
| |
| // ReportHandleReq request handle request |
| type ReportHandleReq struct { |
| ID string `validate:"required" comment:"report id" form:"id" json:"id"` |
| FlaggedType int `validate:"required" comment:"flagged type" form:"flagged_type" json:"flagged_type"` |
| FlaggedContent string `validate:"omitempty" comment:"flagged content" form:"flagged_content" json:"flagged_content"` |
| } |
| |
| // GetReportListPageDTO report list data transfer object |
| type GetReportListPageDTO struct { |
| Page int |
| PageSize int |
| Status int |
| } |
| |
| // GetReportListPageResp get report list |
| type GetReportListPageResp struct { |
| FlagID string `json:"flag_id"` |
| CreatedAt int64 `json:"created_at"` |
| ObjectID string `json:"object_id"` |
| QuestionID string `json:"question_id"` |
| AnswerID string `json:"answer_id"` |
| CommentID string `json:"comment_id"` |
| ObjectType string `json:"object_type" enums:"question,answer,comment"` |
| Title string `json:"title"` |
| UrlTitle string `json:"url_title"` |
| OriginalText string `json:"original_text"` |
| ParsedText string `json:"parsed_text"` |
| AnswerCount int `json:"answer_count"` |
| AnswerAccepted bool `json:"answer_accepted"` |
| Tags []*TagResp `json:"tags"` |
| ObjectStatus int `json:"object_status"` |
| ObjectShowStatus int `json:"object_show_status"` |
| AuthorUserInfo UserBasicInfo `json:"author_user_info"` |
| SubmitAt int64 `json:"submit_at"` |
| SubmitterUser UserBasicInfo `json:"submitter_user"` |
| Reason *ReasonItem `json:"reason"` |
| ReasonContent string `json:"reason_content"` |
| } |
| |
| // GetUnreviewedReportPostPageReq get unreviewed report post page request |
| type GetUnreviewedReportPostPageReq struct { |
| Page int `json:"page" form:"page"` |
| UserID string `json:"-"` |
| IsAdmin bool `json:"-"` |
| } |
| |
| // ReviewReportReq review report request |
| type ReviewReportReq struct { |
| FlagID string `validate:"required" json:"flag_id"` |
| OperationType string `validate:"required,oneof=edit_post close_post delete_post unlist_post ignore_report" json:"operation_type"` |
| CloseType int `validate:"omitempty" json:"close_type"` |
| CloseMsg string `validate:"omitempty" json:"close_msg"` |
| Title string `validate:"omitempty,notblank,gte=6,lte=150" json:"title"` |
| Content string `validate:"omitempty,notblank,gte=6,lte=65535" json:"content"` |
| Tags []*TagItem `validate:"omitempty,dive" json:"tags"` |
| UserID string `json:"-"` |
| IsAdmin bool `json:"-"` |
| } |