Yimaru-BackEnd/internal/domain/issue_reporting.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"`
}