// package use_group -- группа вариантов использования
package use_group

import (
	"fmt"

	"gitp78su.ipnodns.ru/svi/test_arch/lev0/alias"
	"gitp78su.ipnodns.ru/svi/test_arch/lev0/types"
	"gitp78su.ipnodns.ru/svi/test_arch/pkg/elems/elem_base"
	"gitp78su.ipnodns.ru/svi/test_arch/pkg/elems/size"
)

// UseGroup -- группа вариантов использования
type UseGroup struct {
	*elem_base.ElemBase
	*size.Size
}

// NewUseGroup -- возвращает новую группу вариант использования
func NewUseGroup(elem map[string]interface{}) (*UseGroup, error) {
	elemBase, err := elem_base.NewElemBase(elem)
	if err != nil {
		return nil, fmt.Errorf("NewUseGroup(): in create BaseSvg, err=\n\t%w", err)
	}
	sf := &UseGroup{
		ElemBase: elemBase,
		Size:     size.NewSize("size", elem),
	}
	return sf, nil
}

// Links -- заглушка на связи между объектами
func (sf *UseGroup) Links() []alias.Id {
	return []alias.Id{sf.Id_}
}

// Check -- заглушка под проверку
func (sf *UseGroup) Check(map[alias.Id]types.IElemDrawer) string {
	return ""
}
