61 lines
2.2 KiB
Go
61 lines
2.2 KiB
Go
package net
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
const (
|
||
// TableDirection .
|
||
TableDirection = "net_direction"
|
||
//DirInput 从flow指向transition
|
||
DirInput = int8(1)
|
||
//DirOutput 从transition指向flow
|
||
DirOutput = int8(2)
|
||
|
||
//DirOrderSequence 下游顺序执行
|
||
DirOrderSequence = int8(0)
|
||
//DirOrderOrSplit 下游根据条件拆分,各分支若为transition,可允许操作个数>=1
|
||
DirOrderOrSplit = int8(1)
|
||
//DirOrderOrResultSplit 下游transition操作拆分,每个transition只有一个可允许操作,enable均默认为true,但只能操作一个
|
||
//先不做, 如果做了,在详情页提交后,怎么知道提交的是哪个transition(有多个)呢?
|
||
DirOrderOrResultSplit = int8(2)
|
||
//todo --- 其他顺序 v2
|
||
)
|
||
|
||
// DirDirectionDesc .
|
||
var DirDirectionDesc = map[int8]string{
|
||
DirInput: "从节点指向变化",
|
||
DirOutput: "从变化指向节点",
|
||
}
|
||
|
||
// DirOrderDesc 有向线下游顺序描述
|
||
var DirOrderDesc = map[int8]string{
|
||
DirOrderSequence: "直序",
|
||
}
|
||
|
||
// Direction 有向线,连接flow和transition
|
||
type Direction struct {
|
||
ID int64 `gorm:"primary_key" json:"id" form:"id" validate:"omitempty,gt=0"`
|
||
NetID int64 `gorm:"column:net_id" json:"net_id" form:"net_id" validate:"omitempty,gt=0"`
|
||
FlowID int64 `gorm:"column:flow_id" json:"flow_id" form:"flow_id" validate:"required,gt=0"`
|
||
TransitionID int64 `gorm:"column:transition_id" json:"transition_id" form:"transition_id" validate:"required,gt=0"`
|
||
Direction int8 `gorm:"column:direction" json:"direction" form:"direction" validate:"required,min=1,max=2"`
|
||
Order int8 `gorm:"column:order" json:"order" form:"order" validate:"omitempty,min=0,max=2"`
|
||
Guard string `gorm:"column:guard" json:"guard"`
|
||
Output string `gorm:"column:output" json:"output"`
|
||
UID int64 `gorm:"column:uid" json:"uid"`
|
||
DisableTime time.Time `gorm:"column:disable_time" json:"disable_time"`
|
||
Ctime time.Time `gorm:"column:ctime" json:"ctime"`
|
||
Mtime time.Time `gorm:"column:mtime" json:"mtime"`
|
||
}
|
||
|
||
// TableName .
|
||
func (d *Direction) TableName() string {
|
||
return TableDirection
|
||
}
|
||
|
||
// IsAvailable .
|
||
func (d *Direction) IsAvailable() bool {
|
||
return d.DisableTime.IsZero()
|
||
}
|