import gql from 'graphql-tag';

export const UPDATE_SERVICENICKNAME = gql`
  mutation UpdateServiceNickname($input: UpdateServiceNicknameInput!) {
    updateServiceNickname(input: $input) {
      service {
        id
        name
        nickname
        type
        status
        allocatedFrom
        allocatedTo
        user {
          nationalId
          name
          id
          email
          created
          status
        }
      }
      error {
        message
        code
      }
    }
  }
`;

export const CHANGE_SERVICEUSER = gql`
  mutation ChangeServiceUser($input: ChangeServiceUserInput!) {
    changeServiceUser(input: $input) {
      service {
        id
        name
        nickname
        type
        status
        allocatedFrom
        allocatedTo
        user {
          nationalId
          name
          id
          email
          created
          status
        }
      }
      error {
        message
        code
      }
    }
  }
`;

export const UPDATE_DIRECTMARKETING = gql`
  mutation UpdateDirectMarketing($input: UpdateDirectMarketingInput!) {
    updateDirectMarketing(input: $input) {
      service {
        id
        name
        nickname
        type
        status
        allocatedFrom
        allocatedTo
        hasAllowedProviderAccess
        hasBannedDirectMarketing
        user {
          nationalId
          name
          id
          email
          created
          status
        }
      }
      error {
        message
        code
      }
    }
  }
`;

export const UPDATE_PROVIDERACCESS = gql`
  mutation UpdateProviderAccess($input: UpdateProviderAccessInput!) {
    updateProviderAccess(input: $input) {
      service {
        id
        name
        nickname
        type
        status
        allocatedFrom
        allocatedTo
        hasAllowedProviderAccess
        hasBannedDirectMarketing
        user {
          nationalId
          name
          id
          email
          created
          status
        }
      }
      error {
        message
        code
      }
    }
  }
`;

export const ACTIVATE_SERVICE = gql`
  mutation ActivateService($input: ActivateServiceInput!) {
    activateService(input: $input) {
      isActivated
    }
  }
`;

export const TERMINATE_SERVICE = gql`
  mutation TerminateService($input: TerminateServiceInput!) {
    terminateService(input: $input) {
      id
      isCancelled
      isProcessed
      message
      processedAt
      reason
      serviceId
      terminateAt
    }
  }
`;

export const CANCEL_TERMINATION_SERVICE = gql`
  mutation CancelTerminationService($input: CancelTerminationServiceInput!) {
    cancelTerminationService(input: $input) {
      isCancelled
    }
  }
`;

export const UPDATE_TERMINATION_SERVICE = gql`
  mutation UpdateTerminationService($input: UpdateTerminationServiceInput!) {
    updateTerminationService(input: $input) {
      terminateAt
    }
  }
`;

export const LIFT_RESTRICTION = gql`
  mutation LiftRestriction($input: RestrictionLiftInput!) {
    liftRestriction(input: $input) {
      created
      id
      origin
      originId
      restrictionApplied
      restrictionLifted
      restrictionStatus
      restrictionType
      serviceId
    }
  }
`;

export const MOBILE_COMMUNICATION_SETTINGS = gql`
  mutation MobileCommunicationSettings($input: MobileCommunicationSettingsInput!) {
    mobileCommunicationSettings(input: $input) {
      isAdvertisingAllowed
      isBirthdayToneAllowed
      isDirectMarketingAllowed
      isNotifyExcessUsageOneDayAllowed
      isServiceNumberAllowed
      isServiceUpdatesAllowed
      isVisibleToInfoProviders
    }
  }
`;
