mutation CreateEvent(
  $eventName: String!,
  $isRapid: Boolean,
  $isRecurring: Boolean,
  $isMultiDay: Boolean,
  $recurrenceType: RecurrenceType,
  $recurrenceStartDate: Timestamp,
  $recurrenceEndDate: Timestamp,
  $scatterDates: String,
  $multiDayStartDate: Timestamp,
  $multiDayEndDate: Timestamp,
  $bufferTimeBefore: Float,
  $bufferTimeAfter: Float,
  $conflictDetectionEnabled: Boolean,
  $detectedConflicts: String,
  $businessId: UUID!,
  $businessName: String,
  $vendorId: UUID,
  $vendorName: String,
  $hub: String,
  $eventLocation: String,
  $contractType: ContractType,
  $poReference: String,
  $status: EventStatus!,
  $date: Timestamp!,
  $shifts: String,
  $addons: String,
  $total: Float,
  $clientName: String,
  $clientEmail: String,
  $clientPhone: String,
  $invoiceId: UUID,
  $notes: String,
  $requested: Int,
  $assignedStaff: String
) @auth(level: USER) {
  event_insert(
    data: {
      eventName: $eventName
      isRapid: $isRapid
      isRecurring: $isRecurring
      isMultiDay: $isMultiDay
      recurrenceType: $recurrenceType
      recurrenceStartDate: $recurrenceStartDate
      recurrenceEndDate: $recurrenceEndDate
      scatterDates: $scatterDates
      multiDayStartDate: $multiDayStartDate
      multiDayEndDate: $multiDayEndDate
      bufferTimeBefore: $bufferTimeBefore
      bufferTimeAfter: $bufferTimeAfter
      conflictDetectionEnabled: $conflictDetectionEnabled
      detectedConflicts: $detectedConflicts
      businessId: $businessId
      businessName: $businessName
      vendorId: $vendorId
      vendorName: $vendorName
      hub: $hub
      eventLocation: $eventLocation
      contractType: $contractType
      poReference: $poReference
      status: $status
      date: $date
      shifts: $shifts
      addons: $addons
      total: $total
      clientName: $clientName
      clientEmail: $clientEmail
      clientPhone: $clientPhone
      invoiceId: $invoiceId
      notes: $notes
      requested: $requested
      assignedStaff: $assignedStaff
    }
  )
}


mutation UpdateEvent(
  $id: UUID!,
  $eventName: String,
  $isRapid: Boolean,
  $isRecurring: Boolean,
  $isMultiDay: Boolean,
  $recurrenceType: RecurrenceType,
  $recurrenceStartDate: Timestamp,
  $recurrenceEndDate: Timestamp,
  $scatterDates: String,
  $multiDayStartDate: Timestamp,
  $multiDayEndDate: Timestamp,
  $bufferTimeBefore: Float,
  $bufferTimeAfter: Float,
  $conflictDetectionEnabled: Boolean,
  $detectedConflicts: String,
  $businessId: UUID,
  $businessName: String,
  $vendorId: UUID,
  $vendorName: String,
  $hub: String,
  $eventLocation: String,
  $contractType: ContractType,
  $poReference: String,
  $status: EventStatus,
  $date: Timestamp,
  $shifts: String,
  $addons: String,
  $total: Float,
  $clientName: String,
  $clientEmail: String,
  $clientPhone: String,
  $invoiceId: UUID,
  $notes: String,
  $requested: Int,
  $assignedStaff: String
) @auth(level: USER) {
  event_update(
    id: $id,
    data: {
      eventName: $eventName
      isRapid: $isRapid
      isRecurring: $isRecurring
      isMultiDay: $isMultiDay
      recurrenceType: $recurrenceType
      recurrenceStartDate: $recurrenceStartDate
      recurrenceEndDate: $recurrenceEndDate
      scatterDates: $scatterDates
      multiDayStartDate: $multiDayStartDate
      multiDayEndDate: $multiDayEndDate
      bufferTimeBefore: $bufferTimeBefore
      bufferTimeAfter: $bufferTimeAfter
      conflictDetectionEnabled: $conflictDetectionEnabled
      detectedConflicts: $detectedConflicts
      businessId: $businessId
      businessName: $businessName
      vendorId: $vendorId
      vendorName: $vendorName
      hub: $hub
      eventLocation: $eventLocation
      contractType: $contractType
      poReference: $poReference
      status: $status
      date: $date
      shifts: $shifts
      addons: $addons
      total: $total
      clientName: $clientName
      clientEmail: $clientEmail
      clientPhone: $clientPhone
      invoiceId: $invoiceId
      notes: $notes
      requested: $requested
      assignedStaff: $assignedStaff
    }
  )
}

mutation DeleteEvent(
  $id: UUID!
) @auth(level: USER) {
  event_delete(id: $id)
}
