package xmlmodels

import (
	"encoding/json"
	"encoding/xml"
)

type Letter struct {
	XMLName xml.Name     `xml:"letterText"`
	Letter  int          `xml:"letter,attr"`
	Pages   []Page       `xml:"page"`
	Hands   []RefElement `xml:"hand"`
	Inner   string       `xml:",innerxml"`
}

func (l Letter) Keys() []any {
	return []any{l.Letter}
}

func (l Letter) Type() string {
	return LETTER
}

func (l Letter) String() string {
	json, err := json.Marshal(l)
	if err != nil {
		return "Cant marshal to json, Letter: " + err.Error()
	}
	return string(json)
}

type Page struct {
	XMLName xml.Name `xml:"page"`
	Index   int      `xml:"index,attr"`
}
