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 }