152 lines
3.7 KiB
Go
152 lines
3.7 KiB
Go
package schema
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type Publisher struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
WebLink string `json:"weblink"`
|
|
ParentPublisherID *string `json:"parent_publisher_id"`
|
|
ParentPublisher *Publisher `gorm:"foreignKey:ParentPublisherID"`
|
|
Imprints []Publisher `gorm:"foreignKey:ParentPublisherID"`
|
|
Comics []Comic `gorm:"foreignKey:PublisherID"`
|
|
}
|
|
|
|
func (publisher *Publisher) TableName() string {
|
|
return "publisher"
|
|
}
|
|
|
|
type Comic struct {
|
|
Base
|
|
|
|
Title string `gorm:"uniqueIndex" json:"title"`
|
|
CurrentOrder bool `json:"current_order"`
|
|
Completed bool `json:"completed"`
|
|
WebLink string `json:"weblink"`
|
|
PublisherID *string `json:"publisher_id"`
|
|
Publisher *Publisher `gorm:"foreignKey:PublisherID"`
|
|
Issues []Issue `gorm:"foreignKey:ComicID"`
|
|
StoryArcs []StoryArc `gorm:"foreignKey:ComicID"`
|
|
TradePaperbacks []TradePaperback `gorm:"foreignKey:ComicID"`
|
|
Volumes []Volume `gorm:"foreignKey:ComicID"`
|
|
ComicWorks []ComicWork `gorm:"foreignKey:ComicID"`
|
|
}
|
|
|
|
func (comic *Comic) TableName() string {
|
|
return "comic"
|
|
}
|
|
|
|
type Artist struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
WebLink string `json:"weblink"`
|
|
}
|
|
|
|
func (artist *Artist) TableName() string {
|
|
return "artist"
|
|
}
|
|
|
|
type Issue struct {
|
|
Base
|
|
|
|
InStock bool `json:"in_stock"`
|
|
IsRead bool `json:"is_read"`
|
|
IssueNumber string `json:"issue_number"`
|
|
Title string `json:"title"`
|
|
PublishedOn time.Time `json:"published_on"`
|
|
ComicID *string `json:"comic_id"`
|
|
Comic *Comic `gorm:"foreignKey:ComicID"`
|
|
StoryArcID *string `json:"story_arc_id"`
|
|
StoryArc *StoryArc `gorm:"foreignKey:StoryArcID"`
|
|
VolumeID *string `json:"volume_id"`
|
|
Volume *Volume `gorm:"foreignKey:VolumeID"`
|
|
}
|
|
|
|
func (issue *Issue) TableName() string {
|
|
return "issue"
|
|
}
|
|
|
|
type StoryArc struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
ComicID *string `json:"comic_id"`
|
|
Comic *Comic `gorm:"foreignKey:ComicID"`
|
|
VolumeID *string `json:"volume_id"`
|
|
Volume *Volume `gorm:"foreignKey:VolumeID"`
|
|
}
|
|
|
|
func (story_arc *StoryArc) TableName() string {
|
|
return "story_arc"
|
|
}
|
|
|
|
type TradePaperback struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
IssueStart int `json:"issue_start"`
|
|
IssueEnd int `json:"issue_end"`
|
|
ComicID *string `json:"comic_id"`
|
|
Comic *Comic `gorm:"foreignKey:ComicID"`
|
|
}
|
|
|
|
func (trade_paperback *TradePaperback) TableName() string {
|
|
return "trade_paperback"
|
|
}
|
|
|
|
type Volume struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
ComicID *string `json:"comic_id"`
|
|
Comic *Comic `gorm:"foreignKey:ComicID"`
|
|
}
|
|
|
|
func (volume *Volume) TableName() string {
|
|
return "volume"
|
|
}
|
|
|
|
type WorkType struct {
|
|
Base
|
|
|
|
Name string `gorm:"uniqueIndex" json:"name"`
|
|
}
|
|
|
|
func (worktype *WorkType) TableName() string {
|
|
return "worktype"
|
|
}
|
|
|
|
type ComicWork struct {
|
|
Base
|
|
|
|
ArtistID *string `json:"artist_id"`
|
|
Artist *Artist `gorm:"foreignKey:ArtistID"`
|
|
ComicID *string `json:"comic_id"`
|
|
Comic *Comic `gorm:"foreignKey:ComicID"`
|
|
WorkTypeID *string `json:"work_type_id"`
|
|
WorkType *WorkType `gorm:"foreignKey:WorkTypeID"`
|
|
}
|
|
|
|
func (comic_work *ComicWork) TableName() string {
|
|
return "comic_work"
|
|
}
|
|
|
|
type IssueWork struct {
|
|
Base
|
|
|
|
ArtistID *string `json:"artist_id"`
|
|
Artist *Artist `gorm:"foreignKey:ArtistID"`
|
|
IssueID *string `json:"issue_id"`
|
|
Issue *Issue `gorm:"foreignKey:IssueID"`
|
|
WorkTypeID *string `json:"work_type_id"`
|
|
WorkType *WorkType `gorm:"foreignKey:WorkTypeID"`
|
|
}
|
|
|
|
func (issue_work *IssueWork) TableName() string {
|
|
return "issue_work"
|
|
}
|