package scopeTypes

import (
	"database/sql/driver"

	"code.secondbit.org/pqarrays.hg"
)

func (s Scope) GetSQLTableName() string {
	return "scopes"
}

func (s Scopes) Value() (driver.Value, error) {
	ids := make(pqarrays.StringArray, 0, len(s))
	for _, scope := range s {
		ids = append(ids, scope.ID)
	}
	return ids.Value()
}

func (s *Scopes) Scan(value interface{}) error {
	*s = (*s)[:0]
	var ids pqarrays.StringArray
	err := ids.Scan(value)
	if err != nil {
		return err
	}
	for _, id := range ids {
		*s = append(*s, Scope{ID: id})
	}
	return nil
}
