import gql from 'graphql-tag';

export const CONTRACTINVOICES = gql`
  query ContractInvoices($input: ContractsInvoicesInput!) {
    contractsInvoices(input: $input) {
      invoices {
        created
        id
        lines {
          amount
          description
          discount
          id
          productId
          quantity
          subTotalAmount
          tax
          variantId
        }
        payerId
        paymentInfo {
          maskedCardNumber
          msisdn
        }
        payments {
          amount
          authorizationCode
          challenge {
            html
            type
            url
          }
          cardName
          customerSsn
          id
          message
          orderId
          originId
          paymentInfo {
            maskedCardNumber
            msisdn
          }
          paymentType
          paymentUrl
          status
          transactionId
          transactionTimeStamp
        }
        periodEnd
        periodStart
        status
        totalDiscount
        type
        totalAmount
        updated
        pdfLink
        paymentPostponements {
          postponeTo
          postponeFrom
          added
        }
      }
      pageInfo {
        hasNextPage
        nextPage
        totalCount
      }
    }
  }
`;

export const CONTRACTINVOICE = gql`
  query ContractInvoice($input: ContractsInvoiceInput!) {
    contractsInvoice(input: $input) {
      created
      id
      lines {
        amount
        description
        discount
        id
        productId
        quantity
        subTotalAmount
        tax
        variantId
      }
      payerId
      paymentInfo {
        maskedCardNumber
        msisdn
      }
      payments {
        amount
        cardName
        challenge {
          html
          type
          url
        }
        authorizationCode
        customerSsn
        id
        message
        orderId
        originId
        paymentInfo {
          maskedCardNumber
          msisdn
        }
        paymentType
        paymentUrl
        transactionId
        status
        transactionTimeStamp
      }
      pdfLink
      contractId
      periodEnd
      periodStart
      status
      totalAmount
      totalDiscount
      type
      updated
    }
  }
`;

export const CONTRACT_INVOICE_PERIOD_END = gql`
  query ContractInvoicePeriodEnd($input: ContractsInvoicesInput!) {
    contractsInvoices(input: $input) {
      invoices {
        created
        id
        periodEnd
      }
    }
  }
`;

export const CONTRACT_INVOICE_STATUS = gql`
  query ContractInvoiceStatus($input: ContractsInvoicesInput!) {
    contractsInvoices(input: $input) {
      invoices {
        status
        totalAmount
      }
    }
  }
`;

export const CALCULATE_PERIOD = gql`
  query CalculatePeriod($input: CalculatePeriodInput!) {
    calculateUpcomingCharges(input: $input) {
      amount
      discount
      periodEnd
      periodStart
    }
  }
`;
