func (m *BlockRange) PrettyPrint(db *Database) string {
	fields := []string{"Identifier", "StartToken", "EndToken"}
	return prettyPrint(m, fields)
}
PrettyPrint prints BlockRange in a human readable format and
adds information about related entries if helpful.
package model
import (
	"database/sql"
	"encoding/json"
	"strconv"
	"strings"
)
type BlockRange struct {
	BlockRangeID int
	BlockType    int
	Identifier   int
	StartToken   sql.NullInt32
	EndToken     sql.NullInt32
	UserMarkID   int
}
func (m *BlockRange) ID() int {
	return m.BlockRangeID
}
func (m *BlockRange) SetID(id int) {
	m.BlockRangeID = id
}
func (m *BlockRange) UniqueKey() string {
	var sb strings.Builder
	sb.Grow(15)
	sb.WriteString(strconv.FormatInt(int64(m.BlockType), 10))
	sb.WriteString("_")
	sb.WriteString(strconv.FormatInt(int64(m.Identifier), 10))
	sb.WriteString("_")
	sb.WriteString(strconv.FormatInt(int64(m.StartToken.Int32), 10))
	sb.WriteString("_")
	sb.WriteString(strconv.FormatInt(int64(m.EndToken.Int32), 10))
	sb.WriteString("_")
	sb.WriteString(strconv.FormatInt(int64(m.UserMarkID), 10))
	return sb.String()
}
func (m *BlockRange) Equals(m2 Model) bool {
	if m2, ok := m2.(*BlockRange); ok {
		return m.BlockType == m2.BlockType &&
			m.Identifier == m2.Identifier &&
			m.StartToken.Int32 == m2.StartToken.Int32 &&
			m.EndToken.Int32 == m2.EndToken.Int32 &&
			m.UserMarkID == m2.UserMarkID
	}
	return false
}
func (m *BlockRange) RelatedEntries(db *Database) Related {
	return Related{}
}