package base

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

type LayoutField struct {
	Uuid            string                    `db:"uuid"`
	LayoutUuid      string                    `db:"layout_uuid"` // 所属布局 UUID
	Type            string                    `db:"type"`
	X               int                       `db:"x"`
	Y               int                       `db:"y"`
	W               int                       `db:"w"`
	H               int                       `db:"h"`
	MinH            int                       `db:"minH"`
	MinW            int                       `db:"minW"`
	MaxH            int                       `db:"maxH"`
	MaxW            int                       `db:"maxW"`
	Code            string                    `db:"code"`
	Label           string                    `db:"label"`
	Widget          string                    `db:"widget"`
	WidgetPerfix    string                    `db:"widgetPerfix"`
	WidgetDecorator res_type.ResFieldByString `db:"widgetDecorator"`
	SubWidgets      res_type.ResFieldByAnys   `db:"subWidgets"`
	Placeholder     string                    `db:"placeholder"`
	Help            string                    `db:"help"`
	Disabled        int                       `db:"disabled"`
	InitialValue    string                    `db:"initialValue"`
	Extras          res_type.ResFieldByMap    `db:"extras"`
	Validators      res_type.ResFieldByMap    `db:"validators"`
	Hidden          bool                      `db:"hidden"`
	IsVirtual       bool                      `db:"isVirtual"`
	UpdatedAt       string                    `db:"updated_at"`
	CreatedAt       string                    `db:"created_at"`
}

type GetLayoutFields func(uuid string) []LayoutField