package model

import "time"

type Status int32

const (
	// Phase: Final Status
	StatusReleased  Status = 9
	StatusRejected  Status = 8

	// Phase: Testing
	StatusUploaded   Status = 7 // uploaded to the group, but pending release
	StatusUploading  Status = 6
	StatusValidated  Status = 5
	StatusValidating Status = 4
	StatusAccepted   Status = 3 // pending script review, can re-trigger validation

	// Phase: Creation
	StatusChangesRequested  Status = 2
	StatusSubmitted         Status = 1
	StatusUnderConstruction Status = 0
)

type Submission struct {
	ID            int64 `gorm:"primaryKey"`
	DisplayName   string
	Creator       string
	GameID        int32
	CreatedAt     time.Time
	UpdatedAt     time.Time
	Submitter     uint64 // UserID
	AssetID       uint64
	AssetVersion  uint64
	Completed     bool   // Has this version of the map been completed at least once on maptest
	TargetAssetID uint64 // where to upload map fix.  if the TargetAssetID is 0, it's a new map.
	StatusID      Status
}