Files
Datarush/internal/results/domain/result.go
T
2025-12-19 21:04:12 +03:00

57 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,
}
}