| /* |
| * 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 ( |
| "encoding/json" |
| "github.com/apache/answer/internal/base/constant" |
| ) |
| |
| const ( |
| AccountActivationSourceType EmailSourceType = "account-activation" |
| PasswordResetSourceType EmailSourceType = "password-reset" |
| ConfirmNewEmailSourceType EmailSourceType = "password-reset" |
| UnsubscribeSourceType EmailSourceType = "unsubscribe" |
| BindingSourceType EmailSourceType = "binding" |
| ) |
| |
| type EmailSourceType string |
| |
| type EmailCodeContent struct { |
| SourceType EmailSourceType `json:"source_type"` |
| Email string `json:"e_mail"` |
| UserID string `json:"user_id"` |
| // Used for unsubscribe notification |
| NotificationSources []constant.NotificationSource `json:"notification_source,omitempty"` |
| // Used for third-party login account binding |
| BindingKey string `json:"binding_key,omitempty"` |
| // Skip the validation of the latest code |
| SkipValidationLatestCode bool `json:"skip_validation_latest_code"` |
| } |
| |
| func (r *EmailCodeContent) ToJSONString() string { |
| codeBytes, _ := json.Marshal(r) |
| return string(codeBytes) |
| } |
| |
| func (r *EmailCodeContent) FromJSONString(data string) error { |
| return json.Unmarshal([]byte(data), &r) |
| } |
| |
| type RegisterTemplateData struct { |
| SiteName string |
| RegisterUrl string |
| } |
| |
| type PassResetTemplateData struct { |
| SiteName string |
| PassResetUrl string |
| } |
| |
| type ChangeEmailTemplateData struct { |
| SiteName string |
| ChangeEmailUrl string |
| } |
| |
| type TestTemplateData struct { |
| SiteName string |
| } |
| |
| type NewAnswerTemplateRawData struct { |
| AnswerUserDisplayName string |
| QuestionTitle string |
| QuestionID string |
| AnswerID string |
| AnswerSummary string |
| UnsubscribeCode string |
| } |
| |
| type NewAnswerTemplateData struct { |
| SiteName string |
| DisplayName string |
| QuestionTitle string |
| AnswerUrl string |
| AnswerSummary string |
| UnsubscribeUrl string |
| } |
| |
| type NewInviteAnswerTemplateRawData struct { |
| InviterDisplayName string |
| QuestionTitle string |
| QuestionID string |
| UnsubscribeCode string |
| } |
| |
| type NewInviteAnswerTemplateData struct { |
| SiteName string |
| DisplayName string |
| QuestionTitle string |
| InviteUrl string |
| UnsubscribeUrl string |
| } |
| |
| type NewCommentTemplateRawData struct { |
| CommentUserDisplayName string |
| QuestionTitle string |
| QuestionID string |
| AnswerID string |
| CommentID string |
| CommentSummary string |
| UnsubscribeCode string |
| } |
| |
| type NewCommentTemplateData struct { |
| SiteName string |
| DisplayName string |
| QuestionTitle string |
| CommentUrl string |
| CommentSummary string |
| UnsubscribeUrl string |
| } |
| |
| type NewQuestionTemplateRawData struct { |
| QuestionAuthorUserID string |
| QuestionTitle string |
| QuestionID string |
| UnsubscribeCode string |
| Tags []string |
| TagIDs []string |
| } |
| |
| type NewQuestionTemplateData struct { |
| SiteName string |
| QuestionTitle string |
| QuestionUrl string |
| Tags string |
| UnsubscribeUrl string |
| } |