package template_display

type TemplateParams interface {
	SendEvent(EventType) error
}

type BackupTemplateParams struct {
	TenantName      string `json:"-"`
	Region          string `json:"region"`
	TenantId        uint64 `json:"tenant-id"`
	ClusterId       uint64 `json:"cluster-id"`
	BackupId        uint64 `json:"id"`
	BackupStatus    string `json:"status"`
	ErrorMessage    string `json:"error"`
	BackupType      string `json:"type"`
	IsFailed        bool   `json:"-"`
	Size            string `json:"size"`
	CreatedAt       uint64 `json:"_"`
	FinishedAt      uint64 `json:"-"`
	CorrelatedIssue string
}

type RestoreTemplateParams struct {
	TenantName      string `json:"-"`
	Region          string `json:"region"`
	TenantId        uint64 `json:"tenant-id"`
	ClusterId       uint64 `json:"cluster-id"`
	RestoreId       uint64 `json:"id"`
	RestoreStatus   string `json:"status"`
	ErrorMessage    string `json:"error"`
	IsFailed        bool   `json:"-"`
	CreatedAt       uint64 `json:"-"`
	FinishedAt      uint64 `json:"-"`
	CorrelatedIssue string
}

type ImportTemplateParams struct {
	TenantName      string `json:"-"`
	Region          string `json:"region"`
	TenantId        uint64 `json:"tenant-id"`
	ClusterId       uint64 `json:"cluster-id"`
	ImportId        uint64 `json:"id"`
	ImportStatus    string `json:"status"`
	ErrorMessage    string `json:"error"`
	IsFailed        bool   `json:"-"`
	Size            string `json:"size"`
	CreatedAt       uint64 `json:"-"`
	StartedAt       uint64 `json:"started_at"`
	FinishedAt      uint64 `json:"-"`
	CorrelatedIssue string
}

type ClusterOperationTemplateParams struct {
	TenantName             string `json:"-"`
	Region                 string `json:"region"`
	TenantId               uint64 `json:"tenant-id"`
	ClusterId              uint64 `json:"cluster-id"`
	ClusterOperationId     uint64 `json:"id"`
	ClusterOperationStatus string `json:"status"`
	ClusterOperationType   string `json:"type"`
	ErrorMessage           string `json:"error"`
	IsFailed               bool   `json:"-"`
	CreatedAt              uint64 `json:"-"`
	CompletedAt            uint64 `json:"-"`
	CorrelatedIssue        string
}

type ClusterCreationTemplateParams struct {
	TenantName      string
	Region          string
	TenantId        uint64
	ClusterId       uint64
	ClusterStatus   string
	ErrorMessage    string
	IsFailed        bool
	CorrelatedIssue string
}

type NewTenantTemplateParams struct {
	TenantName   string
	Region       string
	TenantId     uint64
	PlanType     string
	FromProvider string
	IsFromPOC    bool
	IsPOC        bool
}

type DFJobTemplateParams struct {
	TenantName      string
	Region          string
	TenantId        uint64
	ClusterId       uint64
	DFJobId         uint64
	DFJobType       string
	Phase           string
	ErrorMessage    string
	IsFailed        bool
	CreatedAt       uint64
	FinishedAt      uint64
	CorrelatedIssue string
}

type EmptyTemplateParams struct {
}
