// Code generated by github.com/Yamashou/gqlgenc, DO NOT EDIT.

package graphql

import (
	"context"

	"github.com/Yamashou/gqlgenc/clientv2"
)

type StashBoxGraphQLClient interface {
	FindScenesBySceneFingerprints(ctx context.Context, fingerprints [][]*FingerprintQueryInput, interceptors ...clientv2.RequestInterceptor) (*FindScenesBySceneFingerprints, error)
	SearchScene(ctx context.Context, term string, interceptors ...clientv2.RequestInterceptor) (*SearchScene, error)
	SearchPerformer(ctx context.Context, term string, interceptors ...clientv2.RequestInterceptor) (*SearchPerformer, error)
	FindPerformerByID(ctx context.Context, id string, interceptors ...clientv2.RequestInterceptor) (*FindPerformerByID, error)
	FindSceneByID(ctx context.Context, id string, interceptors ...clientv2.RequestInterceptor) (*FindSceneByID, error)
	FindStudio(ctx context.Context, id *string, name *string, interceptors ...clientv2.RequestInterceptor) (*FindStudio, error)
	FindTag(ctx context.Context, id *string, name *string, interceptors ...clientv2.RequestInterceptor) (*FindTag, error)
	QueryTags(ctx context.Context, input TagQueryInput, interceptors ...clientv2.RequestInterceptor) (*QueryTags, error)
	SubmitFingerprint(ctx context.Context, input FingerprintSubmission, interceptors ...clientv2.RequestInterceptor) (*SubmitFingerprint, error)
	Me(ctx context.Context, interceptors ...clientv2.RequestInterceptor) (*Me, error)
	SubmitSceneDraft(ctx context.Context, input SceneDraftInput, interceptors ...clientv2.RequestInterceptor) (*SubmitSceneDraft, error)
	SubmitPerformerDraft(ctx context.Context, input PerformerDraftInput, interceptors ...clientv2.RequestInterceptor) (*SubmitPerformerDraft, error)
}

type Client struct {
	Client *clientv2.Client
}

func NewClient(cli clientv2.HttpClient, baseURL string, options *clientv2.Options, interceptors ...clientv2.RequestInterceptor) StashBoxGraphQLClient {
	return &Client{Client: clientv2.NewClient(cli, baseURL, options, interceptors...)}
}

type URLFragment struct {
	URL  string "json:\"url\" graphql:\"url\""
	Type string "json:\"type\" graphql:\"type\""
}

func (t *URLFragment) GetURL() string {
	if t == nil {
		t = &URLFragment{}
	}
	return t.URL
}
func (t *URLFragment) GetType() string {
	if t == nil {
		t = &URLFragment{}
	}
	return t.Type
}

type ImageFragment struct {
	ID     string "json:\"id\" graphql:\"id\""
	URL    string "json:\"url\" graphql:\"url\""
	Width  int    "json:\"width\" graphql:\"width\""
	Height int    "json:\"height\" graphql:\"height\""
}

func (t *ImageFragment) GetID() string {
	if t == nil {
		t = &ImageFragment{}
	}
	return t.ID
}
func (t *ImageFragment) GetURL() string {
	if t == nil {
		t = &ImageFragment{}
	}
	return t.URL
}
func (t *ImageFragment) GetWidth() int {
	if t == nil {
		t = &ImageFragment{}
	}
	return t.Width
}
func (t *ImageFragment) GetHeight() int {
	if t == nil {
		t = &ImageFragment{}
	}
	return t.Height
}

type StudioFragment struct {
	Name    string                 "json:\"name\" graphql:\"name\""
	ID      string                 "json:\"id\" graphql:\"id\""
	Aliases []string               "json:\"aliases\" graphql:\"aliases\""
	Urls    []*URLFragment         "json:\"urls\" graphql:\"urls\""
	Parent  *StudioFragment_Parent "json:\"parent,omitempty\" graphql:\"parent\""
	Images  []*ImageFragment       "json:\"images\" graphql:\"images\""
}

func (t *StudioFragment) GetName() string {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.Name
}
func (t *StudioFragment) GetID() string {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.ID
}
func (t *StudioFragment) GetAliases() []string {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.Aliases
}
func (t *StudioFragment) GetUrls() []*URLFragment {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.Urls
}
func (t *StudioFragment) GetParent() *StudioFragment_Parent {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.Parent
}
func (t *StudioFragment) GetImages() []*ImageFragment {
	if t == nil {
		t = &StudioFragment{}
	}
	return t.Images
}

type TagFragment struct {
	Name        string                "json:\"name\" graphql:\"name\""
	ID          string                "json:\"id\" graphql:\"id\""
	Description *string               "json:\"description,omitempty\" graphql:\"description\""
	Aliases     []string              "json:\"aliases\" graphql:\"aliases\""
	Category    *TagFragment_Category "json:\"category,omitempty\" graphql:\"category\""
}

func (t *TagFragment) GetName() string {
	if t == nil {
		t = &TagFragment{}
	}
	return t.Name
}
func (t *TagFragment) GetID() string {
	if t == nil {
		t = &TagFragment{}
	}
	return t.ID
}
func (t *TagFragment) GetDescription() *string {
	if t == nil {
		t = &TagFragment{}
	}
	return t.Description
}
func (t *TagFragment) GetAliases() []string {
	if t == nil {
		t = &TagFragment{}
	}
	return t.Aliases
}
func (t *TagFragment) GetCategory() *TagFragment_Category {
	if t == nil {
		t = &TagFragment{}
	}
	return t.Category
}

type MeasurementsFragment struct {
	BandSize *int    "json:\"band_size,omitempty\" graphql:\"band_size\""
	CupSize  *string "json:\"cup_size,omitempty\" graphql:\"cup_size\""
	Waist    *int    "json:\"waist,omitempty\" graphql:\"waist\""
	Hip      *int    "json:\"hip,omitempty\" graphql:\"hip\""
}

func (t *MeasurementsFragment) GetBandSize() *int {
	if t == nil {
		t = &MeasurementsFragment{}
	}
	return t.BandSize
}
func (t *MeasurementsFragment) GetCupSize() *string {
	if t == nil {
		t = &MeasurementsFragment{}
	}
	return t.CupSize
}
func (t *MeasurementsFragment) GetWaist() *int {
	if t == nil {
		t = &MeasurementsFragment{}
	}
	return t.Waist
}
func (t *MeasurementsFragment) GetHip() *int {
	if t == nil {
		t = &MeasurementsFragment{}
	}
	return t.Hip
}

type BodyModificationFragment struct {
	Location    string  "json:\"location\" graphql:\"location\""
	Description *string "json:\"description,omitempty\" graphql:\"description\""
}

func (t *BodyModificationFragment) GetLocation() string {
	if t == nil {
		t = &BodyModificationFragment{}
	}
	return t.Location
}
func (t *BodyModificationFragment) GetDescription() *string {
	if t == nil {
		t = &BodyModificationFragment{}
	}
	return t.Description
}

type PerformerFragment struct {
	ID              string                      "json:\"id\" graphql:\"id\""
	Name            string                      "json:\"name\" graphql:\"name\""
	Disambiguation  *string                     "json:\"disambiguation,omitempty\" graphql:\"disambiguation\""
	Aliases         []string                    "json:\"aliases\" graphql:\"aliases\""
	Gender          *GenderEnum                 "json:\"gender,omitempty\" graphql:\"gender\""
	MergedIds       []string                    "json:\"merged_ids\" graphql:\"merged_ids\""
	Deleted         bool                        "json:\"deleted\" graphql:\"deleted\""
	MergedIntoID    *string                     "json:\"merged_into_id,omitempty\" graphql:\"merged_into_id\""
	Urls            []*URLFragment              "json:\"urls\" graphql:\"urls\""
	Images          []*ImageFragment            "json:\"images\" graphql:\"images\""
	BirthDate       *string                     "json:\"birth_date,omitempty\" graphql:\"birth_date\""
	DeathDate       *string                     "json:\"death_date,omitempty\" graphql:\"death_date\""
	Ethnicity       *EthnicityEnum              "json:\"ethnicity,omitempty\" graphql:\"ethnicity\""
	Country         *string                     "json:\"country,omitempty\" graphql:\"country\""
	EyeColor        *EyeColorEnum               "json:\"eye_color,omitempty\" graphql:\"eye_color\""
	HairColor       *HairColorEnum              "json:\"hair_color,omitempty\" graphql:\"hair_color\""
	Height          *int                        "json:\"height,omitempty\" graphql:\"height\""
	Measurements    *MeasurementsFragment       "json:\"measurements\" graphql:\"measurements\""
	BreastType      *BreastTypeEnum             "json:\"breast_type,omitempty\" graphql:\"breast_type\""
	CareerStartYear *int                        "json:\"career_start_year,omitempty\" graphql:\"career_start_year\""
	CareerEndYear   *int                        "json:\"career_end_year,omitempty\" graphql:\"career_end_year\""
	Tattoos         []*BodyModificationFragment "json:\"tattoos,omitempty\" graphql:\"tattoos\""
	Piercings       []*BodyModificationFragment "json:\"piercings,omitempty\" graphql:\"piercings\""
}

func (t *PerformerFragment) GetID() string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.ID
}
func (t *PerformerFragment) GetName() string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Name
}
func (t *PerformerFragment) GetDisambiguation() *string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Disambiguation
}
func (t *PerformerFragment) GetAliases() []string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Aliases
}
func (t *PerformerFragment) GetGender() *GenderEnum {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Gender
}
func (t *PerformerFragment) GetMergedIds() []string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.MergedIds
}
func (t *PerformerFragment) GetDeleted() bool {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Deleted
}
func (t *PerformerFragment) GetMergedIntoID() *string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.MergedIntoID
}
func (t *PerformerFragment) GetUrls() []*URLFragment {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Urls
}
func (t *PerformerFragment) GetImages() []*ImageFragment {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Images
}
func (t *PerformerFragment) GetBirthDate() *string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.BirthDate
}
func (t *PerformerFragment) GetDeathDate() *string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.DeathDate
}
func (t *PerformerFragment) GetEthnicity() *EthnicityEnum {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Ethnicity
}
func (t *PerformerFragment) GetCountry() *string {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Country
}
func (t *PerformerFragment) GetEyeColor() *EyeColorEnum {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.EyeColor
}
func (t *PerformerFragment) GetHairColor() *HairColorEnum {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.HairColor
}
func (t *PerformerFragment) GetHeight() *int {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Height
}
func (t *PerformerFragment) GetMeasurements() *MeasurementsFragment {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Measurements
}
func (t *PerformerFragment) GetBreastType() *BreastTypeEnum {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.BreastType
}
func (t *PerformerFragment) GetCareerStartYear() *int {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.CareerStartYear
}
func (t *PerformerFragment) GetCareerEndYear() *int {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.CareerEndYear
}
func (t *PerformerFragment) GetTattoos() []*BodyModificationFragment {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Tattoos
}
func (t *PerformerFragment) GetPiercings() []*BodyModificationFragment {
	if t == nil {
		t = &PerformerFragment{}
	}
	return t.Piercings
}

type PerformerAppearanceFragment struct {
	As        *string            "json:\"as,omitempty\" graphql:\"as\""
	Performer *PerformerFragment "json:\"performer\" graphql:\"performer\""
}

func (t *PerformerAppearanceFragment) GetAs() *string {
	if t == nil {
		t = &PerformerAppearanceFragment{}
	}
	return t.As
}
func (t *PerformerAppearanceFragment) GetPerformer() *PerformerFragment {
	if t == nil {
		t = &PerformerAppearanceFragment{}
	}
	return t.Performer
}

type FingerprintFragment struct {
	Algorithm FingerprintAlgorithm "json:\"algorithm\" graphql:\"algorithm\""
	Hash      string               "json:\"hash\" graphql:\"hash\""
	Duration  int                  "json:\"duration\" graphql:\"duration\""
}

func (t *FingerprintFragment) GetAlgorithm() *FingerprintAlgorithm {
	if t == nil {
		t = &FingerprintFragment{}
	}
	return &t.Algorithm
}
func (t *FingerprintFragment) GetHash() string {
	if t == nil {
		t = &FingerprintFragment{}
	}
	return t.Hash
}
func (t *FingerprintFragment) GetDuration() int {
	if t == nil {
		t = &FingerprintFragment{}
	}
	return t.Duration
}

type SceneFragment struct {
	ID           string                         "json:\"id\" graphql:\"id\""
	Title        *string                        "json:\"title,omitempty\" graphql:\"title\""
	Code         *string                        "json:\"code,omitempty\" graphql:\"code\""
	Details      *string                        "json:\"details,omitempty\" graphql:\"details\""
	Director     *string                        "json:\"director,omitempty\" graphql:\"director\""
	Duration     *int                           "json:\"duration,omitempty\" graphql:\"duration\""
	Date         *string                        "json:\"date,omitempty\" graphql:\"date\""
	Urls         []*URLFragment                 "json:\"urls\" graphql:\"urls\""
	Images       []*ImageFragment               "json:\"images\" graphql:\"images\""
	Studio       *StudioFragment                "json:\"studio,omitempty\" graphql:\"studio\""
	Tags         []*TagFragment                 "json:\"tags\" graphql:\"tags\""
	Performers   []*PerformerAppearanceFragment "json:\"performers\" graphql:\"performers\""
	Fingerprints []*FingerprintFragment         "json:\"fingerprints\" graphql:\"fingerprints\""
}

func (t *SceneFragment) GetID() string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.ID
}
func (t *SceneFragment) GetTitle() *string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Title
}
func (t *SceneFragment) GetCode() *string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Code
}
func (t *SceneFragment) GetDetails() *string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Details
}
func (t *SceneFragment) GetDirector() *string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Director
}
func (t *SceneFragment) GetDuration() *int {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Duration
}
func (t *SceneFragment) GetDate() *string {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Date
}
func (t *SceneFragment) GetUrls() []*URLFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Urls
}
func (t *SceneFragment) GetImages() []*ImageFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Images
}
func (t *SceneFragment) GetStudio() *StudioFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Studio
}
func (t *SceneFragment) GetTags() []*TagFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Tags
}
func (t *SceneFragment) GetPerformers() []*PerformerAppearanceFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Performers
}
func (t *SceneFragment) GetFingerprints() []*FingerprintFragment {
	if t == nil {
		t = &SceneFragment{}
	}
	return t.Fingerprints
}

type StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &StudioFragment_Parent{}
	}
	return t.ID
}
func (t *StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &StudioFragment_Parent{}
	}
	return t.Name
}

type TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &TagFragment_Category{}
	}
	return t.Description
}
func (t *TagFragment_Category) GetID() string {
	if t == nil {
		t = &TagFragment_Category{}
	}
	return t.ID
}
func (t *TagFragment_Category) GetName() string {
	if t == nil {
		t = &TagFragment_Category{}
	}
	return t.Name
}

type SceneFragment_Studio_StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *SceneFragment_Studio_StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.ID
}
func (t *SceneFragment_Studio_StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.Name
}

type SceneFragment_Tags_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *SceneFragment_Tags_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Description
}
func (t *SceneFragment_Tags_TagFragment_Category) GetID() string {
	if t == nil {
		t = &SceneFragment_Tags_TagFragment_Category{}
	}
	return t.ID
}
func (t *SceneFragment_Tags_TagFragment_Category) GetName() string {
	if t == nil {
		t = &SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Name
}

type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.ID
}
func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.Name
}

type FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Description
}
func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category) GetID() string {
	if t == nil {
		t = &FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.ID
}
func (t *FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category) GetName() string {
	if t == nil {
		t = &FindScenesBySceneFingerprints_FindScenesBySceneFingerprints_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Name
}

type SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.ID
}
func (t *SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &SearchScene_SearchScene_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.Name
}

type SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Description
}
func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category) GetID() string {
	if t == nil {
		t = &SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.ID
}
func (t *SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category) GetName() string {
	if t == nil {
		t = &SearchScene_SearchScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Name
}

type FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.ID
}
func (t *FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &FindSceneByID_FindScene_SceneFragment_Studio_StudioFragment_Parent{}
	}
	return t.Name
}

type FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Description
}
func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category) GetID() string {
	if t == nil {
		t = &FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.ID
}
func (t *FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category) GetName() string {
	if t == nil {
		t = &FindSceneByID_FindScene_SceneFragment_Tags_TagFragment_Category{}
	}
	return t.Name
}

type FindStudio_FindStudio_StudioFragment_Parent struct {
	ID   string "json:\"id\" graphql:\"id\""
	Name string "json:\"name\" graphql:\"name\""
}

func (t *FindStudio_FindStudio_StudioFragment_Parent) GetID() string {
	if t == nil {
		t = &FindStudio_FindStudio_StudioFragment_Parent{}
	}
	return t.ID
}
func (t *FindStudio_FindStudio_StudioFragment_Parent) GetName() string {
	if t == nil {
		t = &FindStudio_FindStudio_StudioFragment_Parent{}
	}
	return t.Name
}

type FindTag_FindTag_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *FindTag_FindTag_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &FindTag_FindTag_TagFragment_Category{}
	}
	return t.Description
}
func (t *FindTag_FindTag_TagFragment_Category) GetID() string {
	if t == nil {
		t = &FindTag_FindTag_TagFragment_Category{}
	}
	return t.ID
}
func (t *FindTag_FindTag_TagFragment_Category) GetName() string {
	if t == nil {
		t = &FindTag_FindTag_TagFragment_Category{}
	}
	return t.Name
}

type QueryTags_QueryTags_Tags_TagFragment_Category struct {
	Description *string "json:\"description,omitempty\" graphql:\"description\""
	ID          string  "json:\"id\" graphql:\"id\""
	Name        string  "json:\"name\" graphql:\"name\""
}

func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetDescription() *string {
	if t == nil {
		t = &QueryTags_QueryTags_Tags_TagFragment_Category{}
	}
	return t.Description
}
func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetID() string {
	if t == nil {
		t = &QueryTags_QueryTags_Tags_TagFragment_Category{}
	}
	return t.ID
}
func (t *QueryTags_QueryTags_Tags_TagFragment_Category) GetName() string {
	if t == nil {
		t = &QueryTags_QueryTags_Tags_TagFragment_Category{}
	}
	return t.Name
}

type QueryTags_QueryTags struct {
	Count int            "json:\"count\" graphql:\"count\""
	Tags  []*TagFragment "json:\"tags\" graphql:\"tags\""
}

func (t *QueryTags_QueryTags) GetCount() int {
	if t == nil {
		t = &QueryTags_QueryTags{}
	}
	return t.Count
}
func (t *QueryTags_QueryTags) GetTags() []*TagFragment {
	if t == nil {
		t = &QueryTags_QueryTags{}
	}
	return t.Tags
}

type Me_Me struct {
	Name string "json:\"name\" graphql:\"name\""
}

func (t *Me_Me) GetName() string {
	if t == nil {
		t = &Me_Me{}
	}
	return t.Name
}

type SubmitSceneDraft_SubmitSceneDraft struct {
	ID *string "json:\"id,omitempty\" graphql:\"id\""
}

func (t *SubmitSceneDraft_SubmitSceneDraft) GetID() *string {
	if t == nil {
		t = &SubmitSceneDraft_SubmitSceneDraft{}
	}
	return t.ID
}

type SubmitPerformerDraft_SubmitPerformerDraft struct {
	ID *string "json:\"id,omitempty\" graphql:\"id\""
}

func (t *SubmitPerformerDraft_SubmitPerformerDraft) GetID() *string {
	if t == nil {
		t = &SubmitPerformerDraft_SubmitPerformerDraft{}
	}
	return t.ID
}

type FindScenesBySceneFingerprints struct {
	FindScenesBySceneFingerprints [][]*SceneFragment "json:\"findScenesBySceneFingerprints\" graphql:\"findScenesBySceneFingerprints\""
}

func (t *FindScenesBySceneFingerprints) GetFindScenesBySceneFingerprints() [][]*SceneFragment {
	if t == nil {
		t = &FindScenesBySceneFingerprints{}
	}
	return t.FindScenesBySceneFingerprints
}

type SearchScene struct {
	SearchScene []*SceneFragment "json:\"searchScene\" graphql:\"searchScene\""
}

func (t *SearchScene) GetSearchScene() []*SceneFragment {
	if t == nil {
		t = &SearchScene{}
	}
	return t.SearchScene
}

type SearchPerformer struct {
	SearchPerformer []*PerformerFragment "json:\"searchPerformer\" graphql:\"searchPerformer\""
}

func (t *SearchPerformer) GetSearchPerformer() []*PerformerFragment {
	if t == nil {
		t = &SearchPerformer{}
	}
	return t.SearchPerformer
}

type FindPerformerByID struct {
	FindPerformer *PerformerFragment "json:\"findPerformer,omitempty\" graphql:\"findPerformer\""
}

func (t *FindPerformerByID) GetFindPerformer() *PerformerFragment {
	if t == nil {
		t = &FindPerformerByID{}
	}
	return t.FindPerformer
}

type FindSceneByID struct {
	FindScene *SceneFragment "json:\"findScene,omitempty\" graphql:\"findScene\""
}

func (t *FindSceneByID) GetFindScene() *SceneFragment {
	if t == nil {
		t = &FindSceneByID{}
	}
	return t.FindScene
}

type FindStudio struct {
	FindStudio *StudioFragment "json:\"findStudio,omitempty\" graphql:\"findStudio\""
}

func (t *FindStudio) GetFindStudio() *StudioFragment {
	if t == nil {
		t = &FindStudio{}
	}
	return t.FindStudio
}

type FindTag struct {
	FindTag *TagFragment "json:\"findTag,omitempty\" graphql:\"findTag\""
}

func (t *FindTag) GetFindTag() *TagFragment {
	if t == nil {
		t = &FindTag{}
	}
	return t.FindTag
}

type QueryTags struct {
	QueryTags QueryTags_QueryTags "json:\"queryTags\" graphql:\"queryTags\""
}

func (t *QueryTags) GetQueryTags() *QueryTags_QueryTags {
	if t == nil {
		t = &QueryTags{}
	}
	return &t.QueryTags
}

type SubmitFingerprint struct {
	SubmitFingerprint bool "json:\"submitFingerprint\" graphql:\"submitFingerprint\""
}

func (t *SubmitFingerprint) GetSubmitFingerprint() bool {
	if t == nil {
		t = &SubmitFingerprint{}
	}
	return t.SubmitFingerprint
}

type Me struct {
	Me *Me_Me "json:\"me,omitempty\" graphql:\"me\""
}

func (t *Me) GetMe() *Me_Me {
	if t == nil {
		t = &Me{}
	}
	return t.Me
}

type SubmitSceneDraft struct {
	SubmitSceneDraft SubmitSceneDraft_SubmitSceneDraft "json:\"submitSceneDraft\" graphql:\"submitSceneDraft\""
}

func (t *SubmitSceneDraft) GetSubmitSceneDraft() *SubmitSceneDraft_SubmitSceneDraft {
	if t == nil {
		t = &SubmitSceneDraft{}
	}
	return &t.SubmitSceneDraft
}

type SubmitPerformerDraft struct {
	SubmitPerformerDraft SubmitPerformerDraft_SubmitPerformerDraft "json:\"submitPerformerDraft\" graphql:\"submitPerformerDraft\""
}

func (t *SubmitPerformerDraft) GetSubmitPerformerDraft() *SubmitPerformerDraft_SubmitPerformerDraft {
	if t == nil {
		t = &SubmitPerformerDraft{}
	}
	return &t.SubmitPerformerDraft
}

const FindScenesBySceneFingerprintsDocument = `query FindScenesBySceneFingerprints ($fingerprints: [[FingerprintQueryInput!]!]!) {
	findScenesBySceneFingerprints(fingerprints: $fingerprints) {
		... SceneFragment
	}
}
fragment SceneFragment on Scene {
	id
	title
	code
	details
	director
	duration
	date
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	studio {
		... StudioFragment
	}
	tags {
		... TagFragment
	}
	performers {
		... PerformerAppearanceFragment
	}
	fingerprints {
		... FingerprintFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
fragment StudioFragment on Studio {
	name
	id
	aliases
	urls {
		... URLFragment
	}
	parent {
		name
		id
	}
	images {
		... ImageFragment
	}
}
fragment TagFragment on Tag {
	name
	id
	description
	aliases
	category {
		id
		name
		description
	}
}
fragment PerformerAppearanceFragment on PerformerAppearance {
	as
	performer {
		... PerformerFragment
	}
}
fragment PerformerFragment on Performer {
	id
	name
	disambiguation
	aliases
	gender
	merged_ids
	deleted
	merged_into_id
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	birth_date
	death_date
	ethnicity
	country
	eye_color
	hair_color
	height
	measurements {
		... MeasurementsFragment
	}
	breast_type
	career_start_year
	career_end_year
	tattoos {
		... BodyModificationFragment
	}
	piercings {
		... BodyModificationFragment
	}
}
fragment MeasurementsFragment on Measurements {
	band_size
	cup_size
	waist
	hip
}
fragment BodyModificationFragment on BodyModification {
	location
	description
}
fragment FingerprintFragment on Fingerprint {
	algorithm
	hash
	duration
}
`

func (c *Client) FindScenesBySceneFingerprints(ctx context.Context, fingerprints [][]*FingerprintQueryInput, interceptors ...clientv2.RequestInterceptor) (*FindScenesBySceneFingerprints, error) {
	vars := map[string]any{
		"fingerprints": fingerprints,
	}

	var res FindScenesBySceneFingerprints
	if err := c.Client.Post(ctx, "FindScenesBySceneFingerprints", FindScenesBySceneFingerprintsDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const SearchSceneDocument = `query SearchScene ($term: String!) {
	searchScene(term: $term) {
		... SceneFragment
	}
}
fragment SceneFragment on Scene {
	id
	title
	code
	details
	director
	duration
	date
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	studio {
		... StudioFragment
	}
	tags {
		... TagFragment
	}
	performers {
		... PerformerAppearanceFragment
	}
	fingerprints {
		... FingerprintFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
fragment StudioFragment on Studio {
	name
	id
	aliases
	urls {
		... URLFragment
	}
	parent {
		name
		id
	}
	images {
		... ImageFragment
	}
}
fragment TagFragment on Tag {
	name
	id
	description
	aliases
	category {
		id
		name
		description
	}
}
fragment PerformerAppearanceFragment on PerformerAppearance {
	as
	performer {
		... PerformerFragment
	}
}
fragment PerformerFragment on Performer {
	id
	name
	disambiguation
	aliases
	gender
	merged_ids
	deleted
	merged_into_id
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	birth_date
	death_date
	ethnicity
	country
	eye_color
	hair_color
	height
	measurements {
		... MeasurementsFragment
	}
	breast_type
	career_start_year
	career_end_year
	tattoos {
		... BodyModificationFragment
	}
	piercings {
		... BodyModificationFragment
	}
}
fragment MeasurementsFragment on Measurements {
	band_size
	cup_size
	waist
	hip
}
fragment BodyModificationFragment on BodyModification {
	location
	description
}
fragment FingerprintFragment on Fingerprint {
	algorithm
	hash
	duration
}
`

func (c *Client) SearchScene(ctx context.Context, term string, interceptors ...clientv2.RequestInterceptor) (*SearchScene, error) {
	vars := map[string]any{
		"term": term,
	}

	var res SearchScene
	if err := c.Client.Post(ctx, "SearchScene", SearchSceneDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const SearchPerformerDocument = `query SearchPerformer ($term: String!) {
	searchPerformer(term: $term) {
		... PerformerFragment
	}
}
fragment PerformerFragment on Performer {
	id
	name
	disambiguation
	aliases
	gender
	merged_ids
	deleted
	merged_into_id
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	birth_date
	death_date
	ethnicity
	country
	eye_color
	hair_color
	height
	measurements {
		... MeasurementsFragment
	}
	breast_type
	career_start_year
	career_end_year
	tattoos {
		... BodyModificationFragment
	}
	piercings {
		... BodyModificationFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
fragment MeasurementsFragment on Measurements {
	band_size
	cup_size
	waist
	hip
}
fragment BodyModificationFragment on BodyModification {
	location
	description
}
`

func (c *Client) SearchPerformer(ctx context.Context, term string, interceptors ...clientv2.RequestInterceptor) (*SearchPerformer, error) {
	vars := map[string]any{
		"term": term,
	}

	var res SearchPerformer
	if err := c.Client.Post(ctx, "SearchPerformer", SearchPerformerDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const FindPerformerByIDDocument = `query FindPerformerByID ($id: ID!) {
	findPerformer(id: $id) {
		... PerformerFragment
	}
}
fragment PerformerFragment on Performer {
	id
	name
	disambiguation
	aliases
	gender
	merged_ids
	deleted
	merged_into_id
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	birth_date
	death_date
	ethnicity
	country
	eye_color
	hair_color
	height
	measurements {
		... MeasurementsFragment
	}
	breast_type
	career_start_year
	career_end_year
	tattoos {
		... BodyModificationFragment
	}
	piercings {
		... BodyModificationFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
fragment MeasurementsFragment on Measurements {
	band_size
	cup_size
	waist
	hip
}
fragment BodyModificationFragment on BodyModification {
	location
	description
}
`

func (c *Client) FindPerformerByID(ctx context.Context, id string, interceptors ...clientv2.RequestInterceptor) (*FindPerformerByID, error) {
	vars := map[string]any{
		"id": id,
	}

	var res FindPerformerByID
	if err := c.Client.Post(ctx, "FindPerformerByID", FindPerformerByIDDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const FindSceneByIDDocument = `query FindSceneByID ($id: ID!) {
	findScene(id: $id) {
		... SceneFragment
	}
}
fragment SceneFragment on Scene {
	id
	title
	code
	details
	director
	duration
	date
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	studio {
		... StudioFragment
	}
	tags {
		... TagFragment
	}
	performers {
		... PerformerAppearanceFragment
	}
	fingerprints {
		... FingerprintFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
fragment StudioFragment on Studio {
	name
	id
	aliases
	urls {
		... URLFragment
	}
	parent {
		name
		id
	}
	images {
		... ImageFragment
	}
}
fragment TagFragment on Tag {
	name
	id
	description
	aliases
	category {
		id
		name
		description
	}
}
fragment PerformerAppearanceFragment on PerformerAppearance {
	as
	performer {
		... PerformerFragment
	}
}
fragment PerformerFragment on Performer {
	id
	name
	disambiguation
	aliases
	gender
	merged_ids
	deleted
	merged_into_id
	urls {
		... URLFragment
	}
	images {
		... ImageFragment
	}
	birth_date
	death_date
	ethnicity
	country
	eye_color
	hair_color
	height
	measurements {
		... MeasurementsFragment
	}
	breast_type
	career_start_year
	career_end_year
	tattoos {
		... BodyModificationFragment
	}
	piercings {
		... BodyModificationFragment
	}
}
fragment MeasurementsFragment on Measurements {
	band_size
	cup_size
	waist
	hip
}
fragment BodyModificationFragment on BodyModification {
	location
	description
}
fragment FingerprintFragment on Fingerprint {
	algorithm
	hash
	duration
}
`

func (c *Client) FindSceneByID(ctx context.Context, id string, interceptors ...clientv2.RequestInterceptor) (*FindSceneByID, error) {
	vars := map[string]any{
		"id": id,
	}

	var res FindSceneByID
	if err := c.Client.Post(ctx, "FindSceneByID", FindSceneByIDDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const FindStudioDocument = `query FindStudio ($id: ID, $name: String) {
	findStudio(id: $id, name: $name) {
		... StudioFragment
	}
}
fragment StudioFragment on Studio {
	name
	id
	aliases
	urls {
		... URLFragment
	}
	parent {
		name
		id
	}
	images {
		... ImageFragment
	}
}
fragment URLFragment on URL {
	url
	type
}
fragment ImageFragment on Image {
	id
	url
	width
	height
}
`

func (c *Client) FindStudio(ctx context.Context, id *string, name *string, interceptors ...clientv2.RequestInterceptor) (*FindStudio, error) {
	vars := map[string]any{
		"id":   id,
		"name": name,
	}

	var res FindStudio
	if err := c.Client.Post(ctx, "FindStudio", FindStudioDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const FindTagDocument = `query FindTag ($id: ID, $name: String) {
	findTag(id: $id, name: $name) {
		... TagFragment
	}
}
fragment TagFragment on Tag {
	name
	id
	description
	aliases
	category {
		id
		name
		description
	}
}
`

func (c *Client) FindTag(ctx context.Context, id *string, name *string, interceptors ...clientv2.RequestInterceptor) (*FindTag, error) {
	vars := map[string]any{
		"id":   id,
		"name": name,
	}

	var res FindTag
	if err := c.Client.Post(ctx, "FindTag", FindTagDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const QueryTagsDocument = `query QueryTags ($input: TagQueryInput!) {
	queryTags(input: $input) {
		count
		tags {
			... TagFragment
		}
	}
}
fragment TagFragment on Tag {
	name
	id
	description
	aliases
	category {
		id
		name
		description
	}
}
`

func (c *Client) QueryTags(ctx context.Context, input TagQueryInput, interceptors ...clientv2.RequestInterceptor) (*QueryTags, error) {
	vars := map[string]any{
		"input": input,
	}

	var res QueryTags
	if err := c.Client.Post(ctx, "QueryTags", QueryTagsDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const SubmitFingerprintDocument = `mutation SubmitFingerprint ($input: FingerprintSubmission!) {
	submitFingerprint(input: $input)
}
`

func (c *Client) SubmitFingerprint(ctx context.Context, input FingerprintSubmission, interceptors ...clientv2.RequestInterceptor) (*SubmitFingerprint, error) {
	vars := map[string]any{
		"input": input,
	}

	var res SubmitFingerprint
	if err := c.Client.Post(ctx, "SubmitFingerprint", SubmitFingerprintDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const MeDocument = `query Me {
	me {
		name
	}
}
`

func (c *Client) Me(ctx context.Context, interceptors ...clientv2.RequestInterceptor) (*Me, error) {
	vars := map[string]any{}

	var res Me
	if err := c.Client.Post(ctx, "Me", MeDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const SubmitSceneDraftDocument = `mutation SubmitSceneDraft ($input: SceneDraftInput!) {
	submitSceneDraft(input: $input) {
		id
	}
}
`

func (c *Client) SubmitSceneDraft(ctx context.Context, input SceneDraftInput, interceptors ...clientv2.RequestInterceptor) (*SubmitSceneDraft, error) {
	vars := map[string]any{
		"input": input,
	}

	var res SubmitSceneDraft
	if err := c.Client.Post(ctx, "SubmitSceneDraft", SubmitSceneDraftDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

const SubmitPerformerDraftDocument = `mutation SubmitPerformerDraft ($input: PerformerDraftInput!) {
	submitPerformerDraft(input: $input) {
		id
	}
}
`

func (c *Client) SubmitPerformerDraft(ctx context.Context, input PerformerDraftInput, interceptors ...clientv2.RequestInterceptor) (*SubmitPerformerDraft, error) {
	vars := map[string]any{
		"input": input,
	}

	var res SubmitPerformerDraft
	if err := c.Client.Post(ctx, "SubmitPerformerDraft", SubmitPerformerDraftDocument, &res, vars, interceptors...); err != nil {
		if c.Client.ParseDataWhenErrors {
			return &res, err
		}

		return nil, err
	}

	return &res, nil
}

var DocumentOperationNames = map[string]string{
	FindScenesBySceneFingerprintsDocument: "FindScenesBySceneFingerprints",
	SearchSceneDocument:                   "SearchScene",
	SearchPerformerDocument:               "SearchPerformer",
	FindPerformerByIDDocument:             "FindPerformerByID",
	FindSceneByIDDocument:                 "FindSceneByID",
	FindStudioDocument:                    "FindStudio",
	FindTagDocument:                       "FindTag",
	QueryTagsDocument:                     "QueryTags",
	SubmitFingerprintDocument:             "SubmitFingerprint",
	MeDocument:                            "Me",
	SubmitSceneDraftDocument:              "SubmitSceneDraft",
	SubmitPerformerDraftDocument:          "SubmitPerformerDraft",
}
