String getEventsQuery = '''
query GetEvents (\$status: EventStatus!, \$first: Int!, \$after: String) {
  client_events(status: \$status, first: \$first, after: \$after) {
    pageInfo {
      hasNextPage
      hasPreviousPage
      startCursor
      endCursor
      total
      count
      currentPage
      lastPage
    }
    edges {
      ...node
      cursor
    }
  }
}
$nodeFragment
''';

var getEventById = '''
  query GetEventById(\$id: ID!) {
    client_event(id: \$id) {
      $_eventFields
    }
  }
  
  $fragments

''';

var nodeFragment = '''
  fragment node on EventEdge {
     node {
       $_eventsListFields
     }
  }
''';

const String cancelClientEventMutation = r'''
    mutation cancel_client_event($event_id: ID!) {
      cancel_client_event(event_id: $event_id) {
        id
      }
    }
  ''';

const String completeClientEventMutation = r'''
    mutation complete_client_event($event_id: ID!, $comment: String) {
      complete_client_event(event_id: $event_id, comment: $comment) {
        id
      }
    }
  ''';

const String trackClientClockinMutation = r'''
    mutation track_client_clockin($position_staff_id: ID!) {
      track_client_clockin(position_staff_id: $position_staff_id) {
        id
      }
    }
  ''';

const String trackClientClockoutMutation = r'''
    mutation track_client_clockout($position_staff_id: ID!) {
      track_client_clockout(position_staff_id: $position_staff_id) {
        id
      }
    }
  ''';

const String notShowedPositionStaffMutation = r'''
    mutation not_showed_position_staff($position_staff_id: ID!) {
      not_showed_position_staff(position_staff_id: $position_staff_id) {
        id
      }
    }
  ''';

const String replacePositionStaffMutation = r'''
    mutation replace_position_staff($position_staff_id: ID!, $reason: String!) {
      replace_position_staff(position_staff_id: $position_staff_id, reason: $reason) {
        id
      }
    }
  ''';

String _eventsListFields = '''
   id
    business {
      id
      name
      registration
      avatar
    }
    hub {
      id
      name
      address
    }
    name
    status
    date
    start_time
    end_time
    purchase_order
    contract_type
    schedule_type
   ''';

String _eventFields = '''
   id
    business {
      id
      name
      registration
      avatar
      ...addons
    }
    hub {
      id
      name
      address
    }
    name
    status
    date
    start_time
    end_time
    purchase_order
    contract_type
    schedule_type
    additional_info
    addons {
      id
      name
    }
    tags {
      id
      name
      slug
    }
    ...shifts
 
  
''';

String fragments = '''fragment addons on Business {
  addons {
    id
    name
  }
}

fragment shifts on Event {
  shifts {
    id
    name
    address
    ...full_address
    contacts {
      id
      first_name
      last_name
      title
      ...auth_info
    }
    positions {
      id
      count
      start_time
      end_time
      rate
      break
      ...business_skill
      ...staff
      department {
        id
        name
      }
    }
  }
}

fragment auth_info on BusinessMember {
  auth_info {
    email
    phone
  }
}

fragment business_skill on EventShiftPosition {
  business_skill {
    id
    skill {
      id
      name
      slug
      price
    }
    price
    is_active
  }
}

fragment full_address on EventShift {
  full_address {
    street_number
    zip_code
    latitude
    longitude
    formatted_address
    street
    region
    city
    country
  }
}

fragment staff on EventShiftPosition {
  staff {
  id
    first_name
    last_name
    middle_name
    email
    phone
    avatar
    pivot {
      id
      status
      start_at
      end_at
      clock_in
      clock_out
      ...staff_position
       ...cancel_reason
       rating {
        id
        rating
      }
    }
  }
}
    
fragment cancel_reason on EventShiftPositionStaff {
  cancel_reason {
    type
    reason
    details
  }
}

fragment staff_position on EventShiftPositionStaff {
  position {
    id
    count
    start_time
    end_time
    rate
    break
    business_skill {
      id
      price
      skill{
        name
      }
    }
  }
}''';
