models

package
v0.0.0-...-3e4b57a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2023 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//DEFLANG   = "de-DE"
	WATCHLIST = "watchlist"
)

Variables

This section is empty.

Functions

func ConnectDataBase

func ConnectDataBase(c DBConfig) *gorm.DB

func Translatename

func Translatename(filename string, regexes map[string]string) string

func Trash

func Trash(f string, trash string) (trashcan string, err error)

Types

type Cast

type Cast struct {
	//ID int64 `gorm:"primary_key"`
	//TMDBMovieMovieID uint  `gorm:"index"`
	//CreditsID        uint  `gorm:"index"`
	//CastID    int `json:"cast_id"`
	PersonID int `json:"ID" gorm:"index"`

	ID          string `json:"credit_id" gorm:"index"`
	Character   string
	Name        string
	XGender     int `json:"gender"`
	Order       int
	ProfilePath string `json:"profile_path"`
}

type Credits

type Credits struct {
	ID int64 `gorm:"primary_key"`

	TMDBMovieID uint   `gorm:"index"`
	Crew        []Crew `gorm:"many2many:credits_crews"`
	Cast        []Cast `gorm:"many2many:credits_casts"`
}

type Crew

type Crew struct {
	//ID int64 `gorm:"primary_key"`
	//TMDBMovieMovieID uint   `gorm:"index"`
	//CreditsID        uint   `gorm:"index"`
	PersonID   int    `json:"ID" gorm:"index"`
	ID         string `json:"credit_id" gorm:"index"`
	Department string
	Gender     int `json:"gender"`
	//	ID          int
	Job         string
	Name        string
	ProfilePath string `json:"profile_path"`
}

type DBConfig

type DBConfig struct {
	DBName               string
	InitialAdminPassword string
}

type File

type File struct {
	gorm.Model
	FullPath string `json:"FullPath" gorm:"Type:text;UNIQUE;index"`
	FileName string `json:"FileName"`
}

func (*File) BeforeSave

func (f *File) BeforeSave() (err error)

func (*File) Create

func (f *File) Create(db *gorm.DB, tmdb TMDBClients) error

func (*File) Move

func (f *File) Move(dir string) (string, error)

type Fulltext

type Fulltext struct {
	MovieID  int64 `gorm:"primary_key"`
	Title    string
	Overview string
	Credits  string
}

type Genres

type Genres struct {
	//ID      int64 `gorm:"primary_key"`
	TmdbID int `gorm:"primary_key" json:"ID" `
	//
	TMDBMovieID uint `gorm:"index"`
	Name        string
}

type HTTPClients

type HTTPClients interface {
	Do(req *http.Request) (*http.Response, error)
}
var (
	HttpClient HTTPClients
)

type Movie

type Movie struct {
	ID                   int64     `json:"id" gorm:"primary_key"`
	CreatedAt            time.Time `sql:"index"`
	UpdatedAt            time.Time
	DeletedAt            *time.Time `sql:"index"`
	FileID               uint       `json:"file_id"`
	TMDBMovieID          uint       `sql:"index"`
	MovieSearchResultsID uint
	Title                string              `json:"title" binding:"required"`
	OrgName              string              `json:"org_name"`
	Meta                 *TMDBMovie          `json:"meta" gorm:"foreignkey:TMDBMovieID"`
	Multiplechoice       *MovieSearchResults `json:"multiplechoice" gorm:"foreignkey:MovieSearchResultsID"`
	File                 File                `json:"File" binding:"required"`
	IsTv                 bool                `json:"is_tv" gorm:"index"`
	Rating               int                 `json:"rating"`
	Watchlist            bool                `json:"watchlist" gorm:"-"`
	LastScanned          time.Time
	Deleted              bool `gorm:"-"`
}

func (*Movie) AfterCreate

func (m *Movie) AfterCreate(scope *gorm.Scope) (err error)

func (*Movie) AfterDelete

func (m *Movie) AfterDelete(scope *gorm.Scope) (err error)

func (*Movie) AfterUpdate

func (m *Movie) AfterUpdate(scope *gorm.Scope) (err error)

func (*Movie) DeleteMeta

func (m *Movie) DeleteMeta(db *gorm.DB, movie *Movie) (err error)

func (*Movie) FullTextIndex

func (m *Movie) FullTextIndex(tx *gorm.DB) error

func (*Movie) GetCredits

func (m *Movie) GetCredits() string

func (*Movie) GetMeta

func (m *Movie) GetMeta(t TMDBClients) (err error)

func (*Movie) MetaByID

func (m *Movie) MetaByID(t TMDBClients, wp *workerpool.WorkerPool, metaid int) error

type MovieSearchResults

type MovieSearchResults struct {
	ID        int       `gorm:"AUTO_INCREMENT"`
	CreatedAt time.Time `gorm:"index"`
	UpdatedAt time.Time
	DeletedAt *time.Time `gorm:"index"`

	Page         int
	Results      []MovieShort `json:"Results" gorm:"many2many:movie_search_results_movie_short"`
	TotalPages   int          `json:"total_pages"`
	TotalResults int          `json:"total_results"`
}

type MovieShort

type MovieShort struct {
	gorm.Model
	MovieSearchResultsID uint
	Adult                bool   `json:"adult"`
	BackdropPath         string `json:"backdrop_path"`
	//ID                   int    `json:"id"`
	OriginalTitle string `json:"original_title"`
	//GenreIDs             []int32 `json:"genre_ids"`
	Popularity  float32 `json:"popularity"`
	PosterPath  string  `json:"poster_path"`
	ReleaseDate string  `json:"release_date"`
	Title       string  `json:"title"`
	Overview    string  `json:"overview"`
	Video       bool    `json:"video"`
	VoteAverage float32 `json:"vote_average"`
	VoteCount   uint32  `json:"vote_count"`
}

type ProductionCompanies

type ProductionCompanies struct {
	ID        int64 `gorm:"primary_key" json:"id"`
	Name      string
	LogoPath  string `json:"logo_path"`
	Iso3166_1 string `json:"origin_country"`
}

type ProductionCountries

type ProductionCountries struct {

	//TMDBMovieMovieID uint
	Iso3166_1 string `gorm:"primary_key" json:"iso_3166_1"`
	Name      string
}

type Recently

type Recently struct {
	//ID        int64     `json:"id" gorm:"primary_key"`
	MovieID    int64 `gorm:"primary_key" sql:"type:bigint REFERENCES movies(id) ON DELETE CASCADE"`
	UserID     int64 `gorm:"primary_key" sql:"type:bigint REFERENCES users(id) ON DELETE CASCADE"`
	LastPlayed time.Time
}

type SpokenLanguages

type SpokenLanguages struct {
	Iso639_1 string `gorm:"primary_key" json:"iso_639_1"`
	Name     string
}

type TMDBClients

type TMDBClients interface {
	SearchMovie(string, map[string]string) (*tmdb.MovieSearchResults, error)
	GetMovieInfo(int, map[string]string) (*tmdb.Movie, error)
	GetMovieImages(int, map[string]string) (*tmdb.MovieImages, error)
}

type TMDBMovie

type TMDBMovie struct {
	ID        int       `gorm:"AUTO_INCREMENT"`
	CreatedAt time.Time `gorm:"index"`
	UpdatedAt time.Time
	DeletedAt *time.Time `gorm:"index"`
	//TMDBMovieID int        `json:"ID"`
	Adult bool
	//MovieID      int64  `gorm:"primary_key" json:"id"`
	BackdropPath string `json:"backdrop_path"`
	// BelongsToCollection bool   `json:"belongs_to_collection"`
	//BelongsToCollection CollectionShort `json:"belongs_to_collection"`
	Budget   uint32
	Genres   []Genres `json:"Genres" gorm:"many2many:tmdb_movie_genres"`
	Homepage string
	//ID               int
	ImdbID              string `json:"imdb_id"`
	OriginalLanguage    string `json:"original_language"`
	OriginalTitle       string `json:"original_title"`
	Overview            string
	Popularity          float32
	PosterPath          string                `json:"poster_path"`
	ProductionCompanies []ProductionCompanies `json:"production_companies" gorm:"many2many:tmdb_movie_production_companies"`
	ProductionCountries []ProductionCountries `json:"production_countries" gorm:"many2many:tmdb_movie_production_countries"`
	ReleaseDate         string                `json:"release_date"`
	Revenue             uint32
	Runtime             uint32
	SpokenLanguages     []SpokenLanguages `json:"spoken_languages" gorm:"many2many:tmdb_movie_spoken_languages"`
	Status              string
	Tagline             string
	Title               string
	Video               bool
	VoteAverage         float32 `json:"vote_average"`
	VoteCount           uint32  `json:"vote_count"`
	// AlternativeTitles *MovieAlternativeTitles `json:"alternative_titles,omitempty"`
	Credits Credits `json:",omitempty"`
}

type Token

type Token struct {
	UserID  int64
	Name    string
	IsAdmin bool
	*jwt.StandardClaims
}

Token struct declaration

type User

type User struct {
	ID       int64  `json:"id" gorm:"primary_key"`
	UserName string `gorm:"UNIQUE;index"`
	Password string `json:"-"`
	IsAdmin  bool   `json:"is_admin"`
}

type Watchlist

type Watchlist struct {
	MovieID   int64 `gorm:"primary_key" sql:"type:bigint REFERENCES movies(id) ON DELETE CASCADE"`
	UserID    int64 `gorm:"primary_key" sql:"type:bigint REFERENCES users(id) ON DELETE CASCADE"`
	CreatedAt time.Time
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL