query listEvents (
  $orderByDate: OrderDirection
  $orderByCreatedDate: OrderDirection,
  $limit: Int
) @auth(level: USER) {
  events(
    orderBy: [
      { date: $orderByDate }
      { createdDate: $orderByCreatedDate }
    ]
    limit: $limit
  ) {
    id
    eventName
    status
    date
    isRapid
    isRecurring
    isMultiDay
    recurrenceType
    recurrenceStartDate
    recurrenceEndDate
    scatterDates
    multiDayStartDate
    multiDayEndDate
    bufferTimeBefore
    bufferTimeAfter
    conflictDetectionEnabled
    detectedConflicts
    businessId
    businessName
    vendorId
    vendorName
    hub
    eventLocation
    contractType
    poReference
    shifts
    addons
    total
    clientName
    clientEmail
    clientPhone
    invoiceId
    notes
    requested
    assignedStaff
    orderType 
    department
    createdBy
    recurringStartDate
    recurringEndDate
    recurringDays
    permanentStartDate
    permanentDays
    includeBackup
    backupStaffCount
    recurringTime
    permanentTime
  }
}

query getEventById(
  $id: UUID!
) @auth(level: USER) {
  event(id: $id) {
    id
    eventName
    status
    date
    isRapid
    isRecurring
    isMultiDay
    recurrenceType
    recurrenceStartDate
    recurrenceEndDate
    scatterDates
    multiDayStartDate
    multiDayEndDate
    bufferTimeBefore
    bufferTimeAfter
    conflictDetectionEnabled
    detectedConflicts
    businessId
    businessName
    vendorId
    vendorName
    hub
    eventLocation
    contractType
    poReference
    shifts
    addons
    total
    clientName
    clientEmail
    clientPhone
    invoiceId
    notes
    requested
    orderType 
    department
    assignedStaff
    recurringStartDate
    recurringEndDate
    recurringDays
    permanentStartDate
    permanentDays
    includeBackup
    backupStaffCount
    recurringTime
    permanentTime
  }
}

query filterEvents(
  $status: EventStatus,
  $businessId: UUID,
  $vendorId: String,
  $isRecurring: Boolean,
  $isRapid: Boolean,
  $isMultiDay: Boolean,
  $recurrenceType: RecurrenceType,
  $date: String,
  $hub: String,
  $eventLocation: String,
  $contractType: ContractType,
  $clientEmail: String
) @auth(level: USER) {
  events(
    where: {
      status: { eq: $status }
      businessId: { eq: $businessId }
      vendorId: { eq: $vendorId }
      isRecurring: { eq: $isRecurring }
      isRapid: { eq: $isRapid }
      isMultiDay: { eq: $isMultiDay }
      recurrenceType: { eq: $recurrenceType }
      date: { eq: $date }
      hub: { eq: $hub }
      eventLocation: { eq: $eventLocation }
      contractType: { eq: $contractType }
      clientEmail: { eq: $clientEmail }
    }) {
    id
    eventName
    status
    date
    isRapid
    isRecurring
    isMultiDay
    recurrenceType
    recurrenceStartDate
    recurrenceEndDate
    scatterDates
    multiDayStartDate
    multiDayEndDate
    bufferTimeBefore
    bufferTimeAfter
    conflictDetectionEnabled
    detectedConflicts
    businessId
    businessName
    vendorId
    vendorName
    hub
    eventLocation
    contractType
    poReference
    shifts
    addons
    total
    clientName
    clientEmail
    clientPhone
    invoiceId
    notes
    requested
    assignedStaff
    orderType 
    department
    createdBy
    recurringStartDate
    recurringEndDate
    recurringDays
    permanentStartDate
    permanentDays
    includeBackup
    backupStaffCount
    recurringTime
    permanentTime
  }
}
