enum GenderEnum {
  MALE
  FEMALE
  TRANSGENDER_MALE
  TRANSGENDER_FEMALE
  INTERSEX
  NON_BINARY
}

enum CircumisedEnum {
  CUT
  UNCUT
}

type Performer {
  id: ID!
  name: String!
  disambiguation: String
  url: String @deprecated(reason: "Use urls")
  urls: [String!]
  gender: GenderEnum
  twitter: String @deprecated(reason: "Use urls")
  instagram: String @deprecated(reason: "Use urls")
  birthdate: String
  ethnicity: String
  country: String
  eye_color: String
  height_cm: Int
  measurements: String
  fake_tits: String
  penis_length: Float
  circumcised: CircumisedEnum
  career_length: String
  tattoos: String
  piercings: String
  alias_list: [String!]!
  favorite: Boolean!
  tags: [Tag!]!
  ignore_auto_tag: Boolean!

  image_path: String # Resolver
  scene_count: Int! # Resolver
  image_count: Int! # Resolver
  gallery_count: Int! # Resolver
  group_count: Int! # Resolver
  movie_count: Int! @deprecated(reason: "use group_count instead") # Resolver
  performer_count: Int! # Resolver
  o_counter: Int # Resolver
  scenes: [Scene!]!
  stash_ids: [StashID!]!
  # rating expressed as 1-100
  rating100: Int
  details: String
  death_date: String
  hair_color: String
  weight: Int
  created_at: Time!
  updated_at: Time!
  groups: [Group!]!
  movies: [Movie!]! @deprecated(reason: "use groups instead")

  custom_fields: Map!
}

input PerformerCreateInput {
  name: String!
  disambiguation: String
  url: String @deprecated(reason: "Use urls")
  urls: [String!]
  gender: GenderEnum
  birthdate: String
  ethnicity: String
  country: String
  eye_color: String
  height_cm: Int
  measurements: String
  fake_tits: String
  penis_length: Float
  circumcised: CircumisedEnum
  career_length: String
  tattoos: String
  piercings: String
  alias_list: [String!]
  twitter: String @deprecated(reason: "Use urls")
  instagram: String @deprecated(reason: "Use urls")
  favorite: Boolean
  tag_ids: [ID!]
  "This should be a URL or a base64 encoded data URL"
  image: String
  stash_ids: [StashIDInput!]
  # rating expressed as 1-100
  rating100: Int
  details: String
  death_date: String
  hair_color: String
  weight: Int
  ignore_auto_tag: Boolean

  custom_fields: Map
}

input PerformerUpdateInput {
  id: ID!
  name: String
  disambiguation: String
  url: String @deprecated(reason: "Use urls")
  urls: [String!]
  gender: GenderEnum
  birthdate: String
  ethnicity: String
  country: String
  eye_color: String
  height_cm: Int
  measurements: String
  fake_tits: String
  penis_length: Float
  circumcised: CircumisedEnum
  career_length: String
  tattoos: String
  piercings: String
  alias_list: [String!]
  twitter: String @deprecated(reason: "Use urls")
  instagram: String @deprecated(reason: "Use urls")
  favorite: Boolean
  tag_ids: [ID!]
  "This should be a URL or a base64 encoded data URL"
  image: String
  stash_ids: [StashIDInput!]
  # rating expressed as 1-100
  rating100: Int
  details: String
  death_date: String
  hair_color: String
  weight: Int
  ignore_auto_tag: Boolean

  custom_fields: CustomFieldsInput
}

input BulkUpdateStrings {
  values: [String!]
  mode: BulkUpdateIdMode!
}

input BulkPerformerUpdateInput {
  clientMutationId: String
  ids: [ID!]
  disambiguation: String
  url: String @deprecated(reason: "Use urls")
  urls: BulkUpdateStrings
  gender: GenderEnum
  birthdate: String
  ethnicity: String
  country: String
  eye_color: String
  height_cm: Int
  measurements: String
  fake_tits: String
  penis_length: Float
  circumcised: CircumisedEnum
  career_length: String
  tattoos: String
  piercings: String
  alias_list: BulkUpdateStrings
  twitter: String @deprecated(reason: "Use urls")
  instagram: String @deprecated(reason: "Use urls")
  favorite: Boolean
  tag_ids: BulkUpdateIds
  # rating expressed as 1-100
  rating100: Int
  details: String
  death_date: String
  hair_color: String
  weight: Int
  ignore_auto_tag: Boolean

  custom_fields: CustomFieldsInput
}

input PerformerDestroyInput {
  id: ID!
}

type FindPerformersResultType {
  count: Int!
  performers: [Performer!]!
}

input PerformerMergeInput {
  source: [ID!]!
  destination: ID!
  # values defined here will override values in the destination
  values: PerformerUpdateInput
}
