Files
Datarush/internal/results/domain/result.go
T
2025-12-17 10:25:18 +03:00

45 lines
1.1 KiB
Go

package domain
import (
"time"
"github.com/google/uuid"
)
type ResultStatus string
const (
ResultStatusUnspecified ResultStatus = "UNSPECIFIED"
ResultStatusPending ResultStatus = "PENDING"
ResultStatusProcessing ResultStatus = "PROCESSING"
ResultStatusCompleted ResultStatus = "COMPLETED"
ResultStatusFailed ResultStatus = "FAILED"
)
type Result struct {
ID uuid.UUID
CompetitionID uuid.UUID
UserID uuid.UUID
Score float64
Rank *int
Status ResultStatus
SubmissionID *uuid.UUID
Metadata map[string]interface{}
CreatedAt time.Time
UpdatedAt time.Time
}
func NewResult(id uuid.UUID, competitionID uuid.UUID, userID uuid.UUID, score float64, rank *int, status ResultStatus, submissionID *uuid.UUID, metadata map[string]interface{}, createdAt time.Time, updatedAt time.Time) *Result {
return &Result{
ID: id,
CompetitionID: competitionID,
UserID: userID,
Score: score,
Rank: rank,
Status: status,
SubmissionID: submissionID,
Metadata: metadata,
CreatedAt: createdAt,
UpdatedAt: updatedAt,
}
}