// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.

package components

import (
	"github.com/LukeHagar/plexgo/internal/utils"
)

type Pivot struct {
	Title   *string `json:"title,omitempty"`
	Type    *string `json:"type,omitempty"`
	Context *string `json:"context,omitempty"`
	ID      *string `json:"id,omitempty"`
	Key     *string `json:"key,omitempty"`
	Symbol  *string `json:"symbol,omitempty"`
}

func (p *Pivot) GetTitle() *string {
	if p == nil {
		return nil
	}
	return p.Title
}

func (p *Pivot) GetType() *string {
	if p == nil {
		return nil
	}
	return p.Type
}

func (p *Pivot) GetContext() *string {
	if p == nil {
		return nil
	}
	return p.Context
}

func (p *Pivot) GetID() *string {
	if p == nil {
		return nil
	}
	return p.ID
}

func (p *Pivot) GetKey() *string {
	if p == nil {
		return nil
	}
	return p.Key
}

func (p *Pivot) GetSymbol() *string {
	if p == nil {
		return nil
	}
	return p.Symbol
}

type Directory struct {
	Title                *string        `json:"title,omitempty"`
	Type                 *string        `json:"type,omitempty"`
	Art                  *string        `json:"art,omitempty"`
	Content              *bool          `json:"content,omitempty"`
	Filter               *string        `json:"filter,omitempty"`
	HasPrefs             *bool          `json:"hasPrefs,omitempty"`
	HasStoreServices     *bool          `json:"hasStoreServices,omitempty"`
	HubKey               *string        `json:"hubKey,omitempty"`
	Identifier           *string        `json:"identifier,omitempty"`
	Key                  *string        `json:"key,omitempty"`
	LastAccessedAt       *int64         `json:"lastAccessedAt,omitempty"`
	Pivot                []Pivot        `json:"Pivot,omitempty"`
	Share                *int64         `json:"share,omitempty"`
	Thumb                *string        `json:"thumb,omitempty"`
	TitleBar             *string        `json:"titleBar,omitempty"`
	AdditionalProperties map[string]any `additionalProperties:"true" json:"-"`
}

func (d Directory) MarshalJSON() ([]byte, error) {
	return utils.MarshalJSON(d, "", false)
}

func (d *Directory) UnmarshalJSON(data []byte) error {
	if err := utils.UnmarshalJSON(data, &d, "", false, nil); err != nil {
		return err
	}
	return nil
}

func (d *Directory) GetTitle() *string {
	if d == nil {
		return nil
	}
	return d.Title
}

func (d *Directory) GetType() *string {
	if d == nil {
		return nil
	}
	return d.Type
}

func (d *Directory) GetArt() *string {
	if d == nil {
		return nil
	}
	return d.Art
}

func (d *Directory) GetContent() *bool {
	if d == nil {
		return nil
	}
	return d.Content
}

func (d *Directory) GetFilter() *string {
	if d == nil {
		return nil
	}
	return d.Filter
}

func (d *Directory) GetHasPrefs() *bool {
	if d == nil {
		return nil
	}
	return d.HasPrefs
}

func (d *Directory) GetHasStoreServices() *bool {
	if d == nil {
		return nil
	}
	return d.HasStoreServices
}

func (d *Directory) GetHubKey() *string {
	if d == nil {
		return nil
	}
	return d.HubKey
}

func (d *Directory) GetIdentifier() *string {
	if d == nil {
		return nil
	}
	return d.Identifier
}

func (d *Directory) GetKey() *string {
	if d == nil {
		return nil
	}
	return d.Key
}

func (d *Directory) GetLastAccessedAt() *int64 {
	if d == nil {
		return nil
	}
	return d.LastAccessedAt
}

func (d *Directory) GetPivot() []Pivot {
	if d == nil {
		return nil
	}
	return d.Pivot
}

func (d *Directory) GetShare() *int64 {
	if d == nil {
		return nil
	}
	return d.Share
}

func (d *Directory) GetThumb() *string {
	if d == nil {
		return nil
	}
	return d.Thumb
}

func (d *Directory) GetTitleBar() *string {
	if d == nil {
		return nil
	}
	return d.TitleBar
}

func (d *Directory) GetAdditionalProperties() map[string]any {
	if d == nil {
		return nil
	}
	return d.AdditionalProperties
}
