Offer

English only

Use Cases

In Pluvo, an Offer is used to provide participants with a registration opportunity. It's an overarching registration offer that is made available through one or more OfferEvents. Participants ultimately register for an OfferEvent, but the management of content and visibility starts with the Offer.

Get single offer

Retrieves one specific offer based on ID or ref.

query {
  offer(id: "uuid-hier") {
    id
    title
    description
    archivedAt
  }
}

List all offers

Provides a list of all (active) registration offers.

query {
  offers {
    id
    title
    isActive
  }
}

Create offer

Creates a new registration offer. You can specify the title and description, as well as the connections with content.

mutation {
  createOffer(
    offer: {
      title: "Inschrijving Projectmanagement",
      description: "Schrijf je in voor deze training.",
      isActive: true
    }
  ) {
    offer {
      id
      title
    }
  }
}

Update offer

Modifies an existing offer. Useful for adjusting name, status, or content.

mutation {
  updateOffer(
    id: "uuid-hier",
    offer: {
      title: "Geüpdatete inschrijving"
      isActive: false
    }
  ) {
    offer {
      id
      title
      isActive
    }
  }
}

Archive offer

Archives one or more offers, making them no longer visible to users.

mutation {
  archiveOffers(
    archive: true,
    ids: ["uuid-1", "uuid-2"]
  ) {
    response {
      succeededIds
      failedIds
    }
  }
}

GraphQL Definitions

Type

The Offer type contains the core data of a registration offer, such as title, status, linked training, and registration settings.

type Offer {
  id: ID!
  ref: String
  title: String!
  description: String
  isActive: Boolean
  archivedAt: DateTime
  createdAt: DateTime
  updatedAt: DateTime
  offerEvents: [OfferEvent!]
}

Queries

offer(id: UUID, ref: String): Offer
offers: [Offer!]!

Mutations

createOffer(offer: CreateOfferInput!): CreateOfferPayload
updateOffer(id: UUID!, offer: UpdateOfferInput!): UpdateOfferPayload
archiveOffers(archive: Boolean!, ids: [UUID!]!): ArchiveOffersPayload

Notes

  • An Offer is not directly registrable — that happens through OfferEvents.
  • You can link multiple events to one Offer, for example for different start dates.
  • Archiving makes the offer invisible, but does not delete it.
  • No deleteOffer available — use archiveOffers.
Schließ die Richtung