Koito/internal/db/opts.go
Gabe Farrell c16b557c21
feat: v0.0.10 (#23)
* feat: single SOT for themes + basic custom support

* fix: adjust colors for yuu theme

* feat: Allow loading of environment variables from file (#20)

* feat: allow loading of environment variables from file

* Panic if a file for an environment variable cannot be read

* Use log.Fatalf + os.Exit instead of panic

* fix: remove supurfluous call to os.Exit()

---------

Co-authored-by: adaexec <nixos-git.s1pht@simplelogin.com>
Co-authored-by: Gabe Farrell <90876006+gabehf@users.noreply.github.com>

* chore: add pr test workflow

* chore: changelog

* feat: make all activity grids configurable

* fix: adjust activity grid style

* fix: make background gradient consistent size

* revert: remove year from activity grid opts

* style: adjust top item list min size to 200px

* feat: add support for custom themes

* fix: stabilized the order of top items

* chore: update changelog

* feat: native import & export

* fix: use correct request body for alias requests

* fix: clear input when closing edit modal

* chore: changelog

* docs: make endpoint clearer for some apps

* feat: add ui and handler for export

* fix: fix pr test workflow

---------

Co-authored-by: adaexec <78047743+adaexec@users.noreply.github.com>
Co-authored-by: adaexec <nixos-git.s1pht@simplelogin.com>
2025-06-18 08:48:19 -04:00

156 lines
2.5 KiB
Go

package db
import (
"time"
"github.com/gabehf/koito/internal/models"
"github.com/google/uuid"
)
type GetAlbumOpts struct {
ID int32
MusicBrainzID uuid.UUID
ArtistID int32
Title string
Titles []string
Image uuid.UUID
}
type GetArtistOpts struct {
ID int32
MusicBrainzID uuid.UUID
Name string
Image uuid.UUID
}
type GetTrackOpts struct {
ID int32
MusicBrainzID uuid.UUID
Title string
ArtistIDs []int32
}
type SaveTrackOpts struct {
Title string
AlbumID int32
ArtistIDs []int32
RecordingMbzID uuid.UUID
Duration int32
}
type SaveAlbumOpts struct {
Title string
MusicBrainzID uuid.UUID
Type string
ArtistIDs []int32
VariousArtists bool
Image uuid.UUID
ImageSrc string
Aliases []string
}
type SaveArtistOpts struct {
Name string
MusicBrainzID uuid.UUID
Aliases []string
Image uuid.UUID
ImageSrc string
}
type UpdateApiKeyLabelOpts struct {
UserID int32
ID int32
Label string
}
type SaveUserOpts struct {
Username string
Password string
Role models.UserRole
}
type SaveApiKeyOpts struct {
Key string
UserID int32
Label string
}
type SaveListenOpts struct {
TrackID int32
Time time.Time
UserID int32
Client string
}
type UpdateTrackOpts struct {
ID int32
MusicBrainzID uuid.UUID
Duration int32
}
type UpdateArtistOpts struct {
ID int32
MusicBrainzID uuid.UUID
Image uuid.UUID
ImageSrc string
}
type UpdateAlbumOpts struct {
ID int32
MusicBrainzID uuid.UUID
Image uuid.UUID
ImageSrc string
VariousArtistsUpdate bool
VariousArtistsValue bool
}
type UpdateUserOpts struct {
ID int32
Username string
Password string
}
type AddArtistsToAlbumOpts struct {
AlbumID int32
ArtistIDs []int32
}
type GetItemsOpts struct {
Limit int
Period Period
Page int
Week int // 1-52
Month int // 1-12
Year int
// Used only for getting top tracks
ArtistID int
AlbumID int
// Used for getting listens
TrackID int
}
type ListenActivityOpts struct {
Step StepInterval
Range int
Month int
Year int
AlbumID int32
ArtistID int32
TrackID int32
}
type TimeListenedOpts struct {
Period Period
AlbumID int32
ArtistID int32
TrackID int32
}
type GetExportPageOpts struct {
UserID int32
ListenedAt time.Time
TrackID int32
Limit int32
}