package entity

import "time"

type ResourcePoolPauseOperationStatus string

const (
	ResourcePoolPauseOperationRunning   ResourcePoolPauseOperationStatus = "running"
	ResourcePoolPauseOperationSucceeded ResourcePoolPauseOperationStatus = "succeeded"
	ResourcePoolPauseOperationFailed    ResourcePoolPauseOperationStatus = "failed"
)

type ResourcePoolPauseOperationType string

const (
	ResourcePoolPauseOperationTypePause  ResourcePoolPauseOperationType = "pause"
	ResourcePoolPauseOperationTypeResume ResourcePoolPauseOperationType = "resume"
)

type ResourcePoolPauseOperationStage string

const (
	ResourcePoolPauseOperationAdmission                 ResourcePoolPauseOperationStage = "admission"
	ResourcePoolPauseOperationAdmissionWithManualBackup ResourcePoolPauseOperationStage = "admission_manual_backup"
	ResourcePoolPauseOperationManualBackup              ResourcePoolPauseOperationStage = "manual_backup"
	ResourcePoolPauseOperationPrecheck                  ResourcePoolPauseOperationStage = "precheck"
	ResourcePoolPauseOperationRegional                  ResourcePoolPauseOperationStage = "regional_pause"
)

type ResourcePoolPauseOperation struct {
	ResourcePoolID uint64
	OperationID    string
	Type           ResourcePoolPauseOperationType
	Status         ResourcePoolPauseOperationStatus
	Stage          ResourcePoolPauseOperationStage
	ResultSummary  string
	CreatedAt      time.Time
	UpdatedAt      time.Time
	DeadlineAt     time.Time
	CompletedAt    *time.Time
}
