Documentation
¶
Overview ¶
Package dto forms the bridge between the api data and the internal models
Index ¶
- Variables
- type Directory
- type Generator
- type GeneratorParams
- type GeneratorPresetOldTopParams
- type GeneratorPresetTopParams
- type GeneratorSave
- type GeneratorWindow
- type History
- type HistoryFilter
- type Link
- type Playlist
- type PlaylistDuplicate
- type PlaylistUnplayable
- type Task
- type TaskFilter
- type TaskHistory
- type Track
- type TrackAdded
- type TrackDeleted
- type TrackDuplicate
- type TrackFilter
- type User
Constants ¶
This section is empty.
Variables ¶
View Source
var Validate = validator.New(validator.WithRequiredStructEnabled())
Functions ¶
This section is empty.
Types ¶
type Directory ¶
type Generator ¶ added in v0.2.0
type Generator struct {
ID int `json:"id"`
Name string `json:"name" validate:"required"`
Description string `json:"description,omitzero"`
PlaylistID int `json:"playlist_id,omitzero"`
IntervalDays int `json:"interval_days"`
SpotifyOutdated bool `json:"spotify_outdated"`
Params GeneratorParams `json:"params" validate:"required"`
Tracks []Track `json:"tracks"`
UpdatedAt time.Time `json:"updated_at"`
}
func GeneratorDTO ¶ added in v0.2.0
type GeneratorParams ¶ added in v0.2.0
type GeneratorParams struct {
TrackAmount int `json:"track_amount" validate:"min=0"`
ExcludedPlaylistIDs []int `json:"excluded_playlist_ids,omitzero"`
ExcludedTrackIDs []int `json:"excluded_track_ids,omitzero"`
Preset model.GeneratorPreset `json:"preset" validate:"required"`
ParamsTop *GeneratorPresetTopParams `json:"params_top,omitzero"`
ParamsOldTop *GeneratorPresetOldTopParams `json:"params_old_top,omitzero"`
}
func (GeneratorParams) ToModel ¶ added in v0.2.0
func (g GeneratorParams) ToModel() model.GeneratorParams
type GeneratorPresetOldTopParams ¶ added in v0.2.0
type GeneratorPresetOldTopParams struct {
PeakWindow GeneratorWindow `json:"peak_window"`
RecentWindow GeneratorWindow `json:"recent_window"`
}
func (GeneratorPresetOldTopParams) ToModel ¶ added in v0.2.0
func (g GeneratorPresetOldTopParams) ToModel() *model.GeneratorPresetOldTopParams
type GeneratorPresetTopParams ¶ added in v0.2.0
type GeneratorPresetTopParams struct {
Window GeneratorWindow `json:"window"`
}
func (GeneratorPresetTopParams) ToModel ¶ added in v0.2.0
func (g GeneratorPresetTopParams) ToModel() *model.GeneratorPresetTopParams
type GeneratorSave ¶ added in v0.2.0
type GeneratorWindow ¶ added in v0.2.0
type GeneratorWindow struct {
Start time.Time `json:"start"`
End time.Time `json:"end"`
MinPlays int `json:"min_plays" validate:"min=0"`
BurstIntervalDays int `json:"burst_interval_days"`
Dynamic bool `json:"dynamic"`
}
func (GeneratorWindow) ToModel ¶ added in v0.2.0
func (g GeneratorWindow) ToModel() *model.GeneratorWindow
type History ¶
type HistoryFilter ¶
type HistoryFilter struct {
UserID int
Skipped *bool
Start time.Time
End time.Time
Limit int
Offset int
}
func (HistoryFilter) ToModel ¶
func (h HistoryFilter) ToModel() *model.HistoryFilter
type Link ¶
type Playlist ¶
type Playlist struct {
ID int `json:"id" validate:"required"`
SpotifyID string `json:"spotify_id"`
Owner User `json:"owner,omitzero"`
Name string `json:"name"`
Description string `json:"description,omitzero"`
Public *bool `json:"public,omitzero"`
TrackAmount int `json:"track_amount"`
Collaborative *bool `json:"collaborative,omitzero"`
HasCover bool `json:"has_cover"`
}
type PlaylistDuplicate ¶
type PlaylistDuplicate struct {
Playlist
Duplicates []TrackDuplicate `json:"duplicates"`
}
func PlaylistDuplicateDTO ¶
type PlaylistUnplayable ¶
func PlaylistUnplayableDTO ¶
type Task ¶
type Task struct {
TaskUID string `json:"uid"`
Name string `json:"name"`
Status task.Status `json:"status"`
NextRun time.Time `json:"next_run,omitzero"`
LastStatus model.TaskResult `json:"last_status,omitempty"`
LastRun *time.Time `json:"last_run,omitzero"`
LastMessage string `json:"last_message,omitempty"`
LastError string `json:"last_error,omitempty"`
Interval *time.Duration `json:"interval,omitzero"`
Recurring bool `json:"recurring"`
}
type TaskFilter ¶
type TaskFilter struct {
UserID int
TaskUID string
Result *model.TaskResult
Recurring *bool
Limit int
Offset int
}
func (*TaskFilter) ToModel ¶
func (t *TaskFilter) ToModel() *model.TaskFilter
type TaskHistory ¶
type TaskHistory struct {
ID int `json:"id"`
Name string `json:"name"`
Result model.TaskResult `json:"result"`
RunAt time.Time `json:"run_at"`
Message string `json:"message"`
Error string `json:"error,omitempty"`
Duration time.Duration `json:"duration"`
}
func TaskHistoryDTO ¶
func TaskHistoryDTO(task *model.Task) TaskHistory
type Track ¶
type TrackAdded ¶
type TrackAdded struct {
Track
Playlist Playlist `json:"playlist"`
CreatedAt time.Time `json:"created_at"`
}
func TrackAddedDTO ¶
func TrackAddedDTO(t *model.Track) TrackAdded
type TrackDeleted ¶
type TrackDeleted struct {
Track
Playlist Playlist `json:"playlist"`
DeletedAt time.Time `json:"deleted_at"`
}
func TrackDeletedDTO ¶
func TrackDeletedDTO(t *model.Track) TrackDeleted
type TrackDuplicate ¶
func TrackDuplicateDTO ¶
func TrackDuplicateDTO(t *model.Track, amount int) TrackDuplicate
type TrackFilter ¶
func (TrackFilter) ToModel ¶
func (t TrackFilter) ToModel() *model.TrackFilter
Click to show internal directories.
Click to hide internal directories.