# Refer to https://gqlgen.com/config/ for detailed .gqlgen.yml documentation.

schema:
  - "graphql/schema/types/*.graphql"
  - "graphql/schema/*.graphql"
exec:
  filename: internal/api/generated_exec.go
model:
  filename: internal/api/generated_models.go

struct_tag: gqlgen

autobind:
  - github.com/stashapp/stash/internal/api
  - github.com/stashapp/stash/pkg/models
  - github.com/stashapp/stash/pkg/plugin
  - github.com/stashapp/stash/pkg/scraper
  - github.com/stashapp/stash/internal/identify
  - github.com/stashapp/stash/internal/dlna
  - github.com/stashapp/stash/pkg/stashbox

models:
  # Scalars
  ID:
    model:
      - github.com/99designs/gqlgen/graphql.ID
      - github.com/99designs/gqlgen/graphql.IntID
      - github.com/stashapp/stash/pkg/models.FileID
      - github.com/stashapp/stash/pkg/models.FolderID
  Int64:
    model: github.com/99designs/gqlgen/graphql.Int64
  Timestamp:
    model: github.com/stashapp/stash/internal/api.Timestamp
  BoolMap:
    model: github.com/stashapp/stash/internal/api.BoolMap
  PluginConfigMap:
    model: github.com/stashapp/stash/internal/api.PluginConfigMap
  File:
    model: github.com/stashapp/stash/internal/api.File
  VideoFile:
    fields:
      # override float fields - #1572
      duration:
        fieldName: DurationFinite
      frame_rate:
        fieldName: FrameRateFinite
  # movie is group under the hood
  Movie:
    model: github.com/stashapp/stash/pkg/models.Group
  MovieFilterType:
    model: github.com/stashapp/stash/pkg/models.GroupFilterType
  # autobind on config causes generation issues
  BlobsStorageType:
    model: github.com/stashapp/stash/internal/manager/config.BlobsStorageType
  StashConfig:
    model: github.com/stashapp/stash/internal/manager/config.StashConfig
  StashConfigInput:
    model: github.com/stashapp/stash/internal/manager/config.StashConfigInput
  StashBoxInput:
    model: github.com/stashapp/stash/internal/manager/config.StashBoxInput
  ConfigImageLightboxResult:
    model: github.com/stashapp/stash/internal/manager/config.ConfigImageLightboxResult
  ImageLightboxDisplayMode:
    model: github.com/stashapp/stash/internal/manager/config.ImageLightboxDisplayMode
  ImageLightboxScrollMode:
    model: github.com/stashapp/stash/internal/manager/config.ImageLightboxScrollMode
  ConfigDisableDropdownCreate:
    model: github.com/stashapp/stash/internal/manager/config.ConfigDisableDropdownCreate
  ScanMetadataOptions:
    model:  github.com/stashapp/stash/internal/manager/config.ScanMetadataOptions
  CleanGeneratedInput:
    model: github.com/stashapp/stash/internal/manager/task.CleanGeneratedOptions
  AutoTagMetadataOptions:
    model: github.com/stashapp/stash/internal/manager/config.AutoTagMetadataOptions
  SystemStatus:
    model: github.com/stashapp/stash/internal/manager.SystemStatus
  SystemStatusEnum:
    model: github.com/stashapp/stash/internal/manager.SystemStatusEnum
  ImportDuplicateEnum:
    model: github.com/stashapp/stash/internal/manager.ImportDuplicateEnum
  SetupInput:
    model: github.com/stashapp/stash/internal/manager.SetupInput
  MigrateInput:
    model: github.com/stashapp/stash/internal/manager.MigrateInput
  ScanMetadataInput:
    model: github.com/stashapp/stash/internal/manager.ScanMetadataInput
  GenerateMetadataInput:
    model: github.com/stashapp/stash/internal/manager.GenerateMetadataInput
  GeneratePreviewOptionsInput:
    model: github.com/stashapp/stash/internal/manager.GeneratePreviewOptionsInput
  AutoTagMetadataInput:
    model: github.com/stashapp/stash/internal/manager.AutoTagMetadataInput
  CleanMetadataInput:
    model: github.com/stashapp/stash/internal/manager.CleanMetadataInput
  StashBoxBatchTagInput:
    model: github.com/stashapp/stash/internal/manager.StashBoxBatchTagInput
  SceneStreamEndpoint:
    model: github.com/stashapp/stash/internal/manager.SceneStreamEndpoint
  ExportObjectTypeInput:
    model: github.com/stashapp/stash/internal/manager.ExportObjectTypeInput
  ExportObjectsInput:
    model: github.com/stashapp/stash/internal/manager.ExportObjectsInput
  ImportObjectsInput:
    model: github.com/stashapp/stash/internal/manager.ImportObjectsInput
  ScanMetaDataFilterInput:
    model: github.com/stashapp/stash/internal/manager.ScanMetaDataFilterInput
  # renamed types
  BulkUpdateIdMode:
    model: github.com/stashapp/stash/pkg/models.RelationshipUpdateMode
  DLNAStatus:
    model: github.com/stashapp/stash/internal/dlna.Status
  DLNAIP:
    model: github.com/stashapp/stash/internal/dlna.Dlnaip
  IdentifySource:
    model: github.com/stashapp/stash/internal/identify.Source
  IdentifyMetadataTaskOptions:
    model: github.com/stashapp/stash/internal/identify.Options
  IdentifyMetadataInput:
    model: github.com/stashapp/stash/internal/identify.Options
  IdentifyMetadataOptions:
    model: github.com/stashapp/stash/internal/identify.MetadataOptions
  IdentifyFieldOptions:
    model: github.com/stashapp/stash/internal/identify.FieldOptions
  IdentifyFieldStrategy:
    model: github.com/stashapp/stash/internal/identify.FieldStrategy
  ScraperSource:
    model: github.com/stashapp/stash/pkg/scraper.Source
  IdentifySourceInput:
    model: github.com/stashapp/stash/internal/identify.Source
  IdentifyFieldOptionsInput:
    model: github.com/stashapp/stash/internal/identify.FieldOptions
  IdentifyMetadataOptionsInput:
    model: github.com/stashapp/stash/internal/identify.MetadataOptions
  ScraperSourceInput:
    model: github.com/stashapp/stash/pkg/scraper.Source
  SavedFindFilterType:
    model: github.com/stashapp/stash/pkg/models.FindFilterType
  # force resolvers
  ConfigResult:
    fields:
      plugins:
        resolver: true
  
