31 lines
1.3 KiB
Go
31 lines
1.3 KiB
Go
|
package graph
|
||
|
|
||
|
import (
|
||
|
"cloud.o-forge.io/core/oc-lib/models/resources"
|
||
|
"cloud.o-forge.io/core/oc-lib/tools"
|
||
|
)
|
||
|
|
||
|
// GraphItem is a struct that represents an item in a graph
|
||
|
type GraphItem struct {
|
||
|
ID string `bson:"id" json:"id" validate:"required"` // ID is the unique identifier of the item
|
||
|
Width float64 `bson:"width" json:"width" validate:"required"` // Width is the graphical width of the item
|
||
|
Height float64 `bson:"height" json:"height" validate:"required"` // Height is the graphical height of the item
|
||
|
Position Position `bson:"position" json:"position" validate:"required"` // Position is the graphical position of the item
|
||
|
*resources.ItemResource // ItemResource is the resource of the item affected to the item
|
||
|
}
|
||
|
|
||
|
func (g *GraphItem) GetResource() (tools.DataType, resources.ResourceInterface) {
|
||
|
if g.Data != nil {
|
||
|
return tools.DATA_RESOURCE, g.Data
|
||
|
} else if g.Compute != nil {
|
||
|
return tools.COMPUTE_RESOURCE, g.Compute
|
||
|
} else if g.Workflow != nil {
|
||
|
return tools.WORKFLOW_RESOURCE, g.Workflow
|
||
|
} else if g.Processing != nil {
|
||
|
return tools.PROCESSING_RESOURCE, g.Processing
|
||
|
} else if g.Storage != nil {
|
||
|
return tools.STORAGE_RESOURCE, g.Storage
|
||
|
}
|
||
|
return tools.INVALID, nil
|
||
|
}
|