type Query {
    productOptionGroups(languageCode: LanguageCode, filterTerm: String): [ProductOptionGroup!]!
    productOptionGroup(id: ID!, languageCode: LanguageCode): ProductOptionGroup
}

type Mutation {
    "Create a new ProductOptionGroup"
    createProductOptionGroup(input: CreateProductOptionGroupInput!): ProductOptionGroup!
    "Update an existing ProductOptionGroup"
    updateProductOptionGroup(input: UpdateProductOptionGroupInput!): ProductOptionGroup!
}

input ProductOptionGroupTranslationInput {
    id: ID
    languageCode: LanguageCode!
    name: String
}

input CreateProductOptionGroupInput {
    code: String!
    translations: [ProductOptionGroupTranslationInput!]!
    options: [CreateProductOptionInput!]!
}

input UpdateProductOptionGroupInput {
    id: ID!
    code: String
    translations: [ProductOptionGroupTranslationInput!]
}

input ProductOptionTranslationInput {
    id: ID
    languageCode: LanguageCode!
    name: String
}

input CreateProductOptionInput {
    code: String!
    translations: [ProductOptionGroupTranslationInput!]!
}
