51 lines
1.9 KiB
Go
51 lines
1.9 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type ReportedIssueType string
|
|
|
|
var (
|
|
ISSUE_TYPE_COURSE ReportedIssueType = "course"
|
|
ISSUE_TYPE_VIDEO ReportedIssueType = "video"
|
|
ISSUE_TYPE_SUBSCRIPTION ReportedIssueType = "subscription"
|
|
ISSUE_TYPE_PAYMENT ReportedIssueType = "payment"
|
|
ISSUE_TYPE_ACCOUNT ReportedIssueType = "account"
|
|
ISSUE_TYPE_LOGIN ReportedIssueType = "login"
|
|
ISSUE_TYPE_CONTENT ReportedIssueType = "content"
|
|
ISSUE_TYPE_PERFORMANCE ReportedIssueType = "performance"
|
|
ISSUE_TYPE_ACCESSIBILITY ReportedIssueType = "accessibility"
|
|
ISSUE_TYPE_FEATURE_REQUEST ReportedIssueType = "feature_request"
|
|
ISSUE_TYPE_BUG ReportedIssueType = "bug"
|
|
ISSUE_TYPE_OTHER ReportedIssueType = "other"
|
|
)
|
|
|
|
type ReportedIssueStatus string
|
|
|
|
var (
|
|
ISSUE_STATUS_PENDING ReportedIssueStatus = "pending"
|
|
ISSUE_STATUS_IN_PROGRESS ReportedIssueStatus = "in_progress"
|
|
ISSUE_STATUS_RESOLVED ReportedIssueStatus = "resolved"
|
|
ISSUE_STATUS_REJECTED ReportedIssueStatus = "rejected"
|
|
)
|
|
|
|
type ReportedIssue struct {
|
|
ID int64 `json:"id"`
|
|
UserID int64 `json:"user_id"`
|
|
UserRole Role `json:"user_role"`
|
|
Subject string `json:"subject"`
|
|
Description string `json:"description"`
|
|
IssueType ReportedIssueType `json:"issue_type"`
|
|
Status ReportedIssueStatus `json:"status"`
|
|
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type ReportedIssueReq struct {
|
|
ID int64 `json:"id"`
|
|
Subject string `json:"subject"`
|
|
Description string `json:"description"`
|
|
IssueType ReportedIssueType `json:"issue_type"`
|
|
Metadata map[string]interface{} `json:"metadata,omitempty"`
|
|
}
|