import gql from 'graphql-tag';

import { autoRefillFragment } from 'graphql/fragments/autoRefill';
import { usagepackFragment } from 'graphql/fragments/usagepack';
import { userFragment } from 'graphql/fragments/user';

import { errorFragment } from '../fragments/error';

export const CHANGE_AUTOREFILL = gql`
  mutation changeAutoRefill($input: ChangeAutoRefillInput!, $subscriptionId: ID) {
    changeAutoRefill(input: $input, subscriptionId: $subscriptionId) {
      user {
        ...UserFragment
        profiles (subscriptionId: $subscriptionId) {
          subscriptionId
          autoRefills {
            ...AutoRefillFragment
          }
          packs {
            ...UsagepackFragment
          }
        }
      }
      error {
        ...ErrorFragment
      }
    }
  }
  ${errorFragment}
  ${autoRefillFragment}
  ${usagepackFragment}
  ${userFragment}
`;

export const REMOVE_AUTOREFILL = gql`
  mutation removeAutoRefill($input: RemoveAutoRefillInput!, $subscriptionId: ID) {
    removeAutoRefill(input: $input, subscriptionId: $subscriptionId) {
      user {
        ...UserFragment
        profiles (subscriptionId: $subscriptionId) {
          subscriptionId
          autoRefills {
            ...AutoRefillFragment
          }
        }
      }
      error {
        ...ErrorFragment
      }
    }
  }
  ${errorFragment}
  ${autoRefillFragment}
  ${userFragment}
`;

export const CHANGE_AUTOREFILL_PAYMENT = gql`
  mutation changeAutoRefillPaymentInfo($input: ChangeAutoRefillPaymentInfoInput!, $subscriptionId: ID) {
    changeAutoRefillPaymentInfo(input: $input) {
      user {
        ...UserFragment
        profiles (subscriptionId: $subscriptionId) {
          subscriptionId
          autoRefills {
            ...AutoRefillFragment
          }
          packs {
            ...UsagepackFragment
          }
        }
      }
      error {
        ...ErrorFragment
      }
    }
  }
  ${errorFragment}
  ${autoRefillFragment}
  ${usagepackFragment}
  ${userFragment}
`;
