func (Tag) MakeSlice(mdl []Model) []*Tag {
	result := make([]*Tag, len(mdl))
	for i := range mdl {
		if mdl[i] == nil {
			continue
		}
		tag := mdl[i].(*Tag)
		result[i] = tag
	}
	return result
}
MakeSlice converts a slice of the generice interface model
package model
import (
	"database/sql"
	"encoding/json"
	"strconv"
	"strings"
)
type Tag struct {
	TagID         int
	TagType       int
	Name          string
	ImageFilename sql.NullString
}
func (m *Tag) ID() int {
	return m.TagID
}
func (m *Tag) SetID(id int) {
	m.TagID = id
}
func (m *Tag) UniqueKey() string {
	var sb strings.Builder
	sb.Grow(15)
	sb.WriteString(strconv.FormatInt(int64(m.TagType), 10))
	sb.WriteString("_")
	sb.WriteString(m.Name)
	return sb.String()
}
func (m *Tag) Equals(m2 Model) bool {
	if m2, ok := m2.(*Tag); ok {
		return m.TagType == m2.TagType &&
			m.Name == m2.Name &&
			m.ImageFilename == m2.ImageFilename
	}
	return false
}
func (m *Tag) RelatedEntries(db *Database) Related {
	return Related{}
}
func (m *Tag) PrettyPrint(db *Database) string {
	fields := []string{"Name"}
	return prettyPrint(m, fields)
}
func (m Tag) MarshalJSON() ([]byte, error) {
	return json.Marshal(&struct {
		Type          string         `json:"type"`
		TagID         int            `json:"tagId"`
		TagType       int            `json:"tagType"`
		Name          string         `json:"name"`
		ImageFilename sql.NullString `json:"imageFilename"`
	}{
		Type:          "Tag",
		TagID:         m.TagID,
		TagType:       m.TagType,
		Name:          m.Name,
		ImageFilename: m.ImageFilename,
	})
}
func (m *Tag) tableName() string {
	return "Tag"
}
func (m *Tag) idName() string {
	return "TagId"
}
func (m *Tag) scanRow(rows *sql.Rows) (Model, error) {
	err := rows.Scan(&m.TagID, &m.TagType, &m.Name, &m.ImageFilename)
	return m, err
}