Yimaru-BackEnd/internal/domain/report_request_status.go

45 lines
863 B
Go

package domain
import (
"fmt"
"github.com/jackc/pgx/v5/pgtype"
)
type ReportRequestStatus string
var (
PendingReportRequest ReportRequestStatus = "pending"
SuccessReportRequest ReportRequestStatus = "success"
RejectReportRequest ReportRequestStatus = "reject"
)
func (r ReportRequestStatus) IsValid() bool {
switch r {
case PendingReportRequest, SuccessReportRequest, RejectReportRequest:
return true
default:
return false
}
}
func ParseReportRequestStatus(val string) (ReportRequestStatus, error) {
r := ReportRequestStatus(val)
if !r.IsValid() {
return "", fmt.Errorf("invalid ReportRequestStatus: %q", val)
}
return r, nil
}
type ValidReportRequestStatus struct {
Value ReportRequestStatus
Valid bool
}
func (v ValidReportRequestStatus) ToPG() pgtype.Text {
return pgtype.Text{
String: string(v.Value),
Valid: v.Valid,
}
}