package base

import (
	"git.fsdpf.net/go/contracts/res_type"
)

type FsmTransition struct {
	Uuid                   string                  `db:"uuid"`
	FsmUuid                string                  `db:"fsm_uuid"`
	Name                   string                  `db:"name"`
	Code                   string                  `db:"code"`
	From                   string                  `db:"from"`
	To                     string                  `db:"to"`
	ResourceUuid           string                  `db:"resource_uuid"`
	FsmName                string                  `db:"fsm_name"`
	PrimaryKey             string                  `db:"primaryKey"`
	StatusField            string                  `db:"statusField"`
	StatusOptions          res_type.ResFieldByAnys `db:"statusOptions"`
	IsPopConfirm           bool                    `db:"isPopConfirm"`
	PopTitle               string                  `db:"popTitle"`
	PopOkText              string                  `db:"popOkText"`
	PopCancelText          string                  `db:"popCancelText"`
	PopOkType              string                  `db:"popOkType"`
	PopPlacement           string                  `db:"popPlacement"`
	WidgetContainerSetting res_type.ResFieldByMap  `db:"widgetContainerSetting"`
	Roles                  res_type.ResFieldByAnys `db:"roles"`
	OperationRoles         res_type.ResFieldByAnys `db:"operationRoles"`
	IsWithLayoutForm       bool                    `db:"isWithLayoutForm"`
	UpdatedAt              string                  `db:"updated_at"`
	CreatedAt              string                  `db:"created_at"`
}

type GetFsmTransition func(uuid string) (FsmTransition, bool)

type GetFsmTransitions func(code string) []FsmTransition