-
Notifications
You must be signed in to change notification settings - Fork 0
/
software.go
47 lines (36 loc) · 1.4 KB
/
software.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package amiibo
import (
"time"
"golang.org/x/text/language"
)
// Software is a generic interface for an Nintendo software product.
//
// Software provides a handler to get all common fields between the ENGGame and JPNSoftware.
type Software interface {
// GetAvailable returns the Nintendo software product availability status.
//
// GetAvailable is calculated by evaluating the Nintendo softwares products release date is
// before the now's timestamp.
GetAvailable() bool
// GetID returns the Nintendo software products hash key ID.
GetID() string
// GetLanguage returns the Nintendo software products language identifier.
GetLanguage() language.Tag
// GetMD5 returns the Nintendo softwares products encoded MD5 hash sequence as well as the generated bytes.
//
// GetMD5 returns an additional error if the byte sequence cannot be generated or if the
// MD5 hash cannot be produced.
GetMD5() (string, []byte, error)
// GetName returns the Nintendo software product name.
//
// GetName can contain unicode.
GetName() string
// GetNameAlternative returns the Nintendo softwares products alternative name.
//
// GetNameAlternative can contain unicode.
GetNameAlternative() string
// GetReleaseDate returns the Nintendo softwares products retail release date as a formatted timestamp.
GetReleaseDate() time.Time
// GetURL return the direct URL to the Nintendo software product page.
GetURL() string
}