Files
kontor/kontor-gin/pkg/schema/comic.go
T
Thomas Peetz 044da5353a
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s
add templates for kontor-gin
2026-09-22 19:19:51 +02:00

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"
}