aboutsummaryrefslogtreecommitdiff
blob: 7e6cd07f93d3b2aeebc683177934462df6273d2c (plain)
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
48
49
50
51
52
53
54
55
56
57
// Contains the model of a commit

package models

import "time"

type Commit struct {
	Id               string `pg:",pk"`
	PrecedingCommits int
	AuthorName       string
	AuthorEmail      string
	AuthorDate       time.Time
	CommitterName    string
	CommitterEmail   string
	CommitterDate    time.Time
	Message          string
	ChangedFiles     *ChangedFiles
	ChangedPackages  []*Package       `pg:"many2many:commit_to_packages,join_fk:package_atom"`
	ChangedVersions  []*Version       `pg:"many2many:commit_to_versions,join_fk:version_id"`
	KeywordChanges   []*KeywordChange `pg:",fk:commit_id"`
}

type ChangedFiles struct {
	Added    []*ChangedFile
	Modified []*ChangedFile
	Deleted  []*ChangedFile
}

type ChangedFile struct {
	Path       string
	ChangeType string
}

type KeywordChange struct {
	Id         string `pg:",pk"`
	CommitId   string
	Commit     *Commit `pg:",fk:commit_id,rel:has-one"`
	VersionId  string
	Version    *Version `pg:",fk:version_id,rel:has-one"`
	PackageId  string
	Package    *Package `pg:",fk:package_id,rel:has-one"`
	Added      []string
	Stabilized []string
	All        []string
}

type CommitToPackage struct {
	Id          string `pg:",pk"`
	CommitId    string
	PackageAtom string
}

type CommitToVersion struct {
	Id        string `pg:",pk"`
	CommitId  string
	VersionId string
}