A question refers to the comment ! And if not Ooopsy
This commit is contained in:
@@ -2,43 +2,48 @@ package graph
|
||||
|
||||
import "cloud.o-forge.io/core/oc-lib/models/resources"
|
||||
|
||||
// Graph is a struct that represents a graph
|
||||
type Graph struct {
|
||||
Zoom float64 `bson:"zoom" json:"zoom" default:"1"`
|
||||
Items map[string]GraphItem `bson:"items" json:"items" default:"{}" validate:"required"`
|
||||
Links []GraphLink `bson:"links" json:"links" default:"{}" validate:"required"`
|
||||
Zoom float64 `bson:"zoom" json:"zoom" default:"1"` // Zoom is the graphical zoom of the graph
|
||||
Items map[string]GraphItem `bson:"items" json:"items" default:"{}" validate:"required"` // Items is the list of elements in the graph
|
||||
Links []GraphLink `bson:"links" json:"links" default:"{}" validate:"required"` // Links is the list of links between elements in the graph
|
||||
}
|
||||
|
||||
// GraphItem is a struct that represents an item in a graph
|
||||
type GraphItem struct {
|
||||
ID string `bson:"id" json:"id" validate:"required"`
|
||||
Width float64 `bson:"width" json:"width" validate:"required"`
|
||||
Height float64 `bson:"height" json:"height" validate:"required"`
|
||||
Position Position `bson:"position" json:"position" validate:"required"`
|
||||
*resources.ItemResource
|
||||
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
|
||||
}
|
||||
|
||||
// GraphLink is a struct that represents a link between two items in a graph
|
||||
type GraphLink struct {
|
||||
Source Position `bson:"source" json:"source" validate:"required"`
|
||||
Destination Position `bson:"destination" json:"destination" validate:"required"`
|
||||
Style *GraphLinkStyle `bson:"style,omitempty" json:"style,omitempty"`
|
||||
Source Position `bson:"source" json:"source" validate:"required"` // Source is the source graphical position of the link
|
||||
Destination Position `bson:"destination" json:"destination" validate:"required"` // Destination is the destination graphical position of the link
|
||||
Style *GraphLinkStyle `bson:"style,omitempty" json:"style,omitempty"` // Style is the graphical style of the link
|
||||
}
|
||||
|
||||
// GraphLinkStyle is a struct that represents the style of a link in a graph
|
||||
type GraphLinkStyle struct {
|
||||
Color int64 `bson:"color" json:"color"`
|
||||
Stroke float64 `bson:"stroke" json:"stroke"`
|
||||
Tension float64 `bson:"tension" json:"tension"`
|
||||
HeadRadius float64 `bson:"head_radius" json:"head_radius"`
|
||||
DashWidth float64 `bson:"dash_width" json:"dash_width"`
|
||||
DashSpace float64 `bson:"dash_space" json:"dash_space"`
|
||||
EndArrow Position `bson:"end_arrow" json:"end_arrow"`
|
||||
StartArrow Position `bson:"start_arrow" json:"start_arrow"`
|
||||
ArrowStyle int64 `bson:"arrow_style" json:"arrow_style"`
|
||||
ArrowDirection int64 `bson:"arrow_direction" json:"arrow_direction"`
|
||||
StartArrowWidth float64 `bson:"start_arrow_width" json:"start_arrow_width"`
|
||||
EndArrowWidth float64 `bson:"end_arrow_width" json:"end_arrow_width"`
|
||||
Color int64 `bson:"color" json:"color"` // Color is the graphical color of the link (int description of a color, can be transpose as hex)
|
||||
Stroke float64 `bson:"stroke" json:"stroke"` // Stroke is the graphical stroke of the link
|
||||
Tension float64 `bson:"tension" json:"tension"` // Tension is the graphical tension of the link
|
||||
HeadRadius float64 `bson:"head_radius" json:"head_radius"` // graphical pin radius
|
||||
DashWidth float64 `bson:"dash_width" json:"dash_width"` // DashWidth is the graphical dash width of the link
|
||||
DashSpace float64 `bson:"dash_space" json:"dash_space"` // DashSpace is the graphical dash space of the link
|
||||
EndArrow Position `bson:"end_arrow" json:"end_arrow"` // EndArrow is the graphical end arrow of the link
|
||||
StartArrow Position `bson:"start_arrow" json:"start_arrow"` // StartArrow is the graphical start arrow of the link
|
||||
ArrowStyle int64 `bson:"arrow_style" json:"arrow_style"` // ArrowStyle is the graphical arrow style of the link (enum foundable in UI)
|
||||
ArrowDirection int64 `bson:"arrow_direction" json:"arrow_direction"` // ArrowDirection is the graphical arrow direction of the link (enum foundable in UI)
|
||||
StartArrowWidth float64 `bson:"start_arrow_width" json:"start_arrow_width"` // StartArrowWidth is the graphical start arrow width of the link
|
||||
EndArrowWidth float64 `bson:"end_arrow_width" json:"end_arrow_width"` // EndArrowWidth is the graphical end arrow width of the link
|
||||
}
|
||||
|
||||
// Position is a struct that represents a graphical position
|
||||
type Position struct {
|
||||
ID string `json:"id" bson:"id" validate:"required"`
|
||||
X float64 `json:"x" bson:"x" validate:"required"`
|
||||
Y float64 `json:"y" bson:"y" validate:"required"`
|
||||
ID string `json:"id" bson:"id"` // ID reprents ItemID (optionnal), TODO: rename to ItemID
|
||||
X float64 `json:"x" bson:"x" validate:"required"` // X is the graphical x position
|
||||
Y float64 `json:"y" bson:"y" validate:"required"` // Y is the graphical y position
|
||||
}
|
||||
|
Reference in New Issue
Block a user