actions/create-agenda-period/create-agenda-period.mjs
import bookingExperts from "../../booking_experts.app.mjs"; export default { key: "booking_experts-create-agenda-period", name: "Create Agenda Period", description: "Creates a new agenda period. [See the documentation](https://developers.bookingexperts.com/reference/administration-maintenance-agenda-periods-create)", version: "0.0.2", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: false, }, type: "action", props: { bookingExperts, administrationId: { propDefinition: [ bookingExperts, "administrationId", ], }, type: { type: "string", label: "Type", description: "The type of agenda period to create", options: [ "maintenance_agenda_periods", "external_blocked_agenda_periods", ], }, label: { type: "string", label: "Label", description: "The label of the agenda period", }, startDate: { type: "string", label: "Start Date", description: "The start date of the agenda period. Example: `2025-08-28`", }, endDate: { type: "string", label: "End Date", description: "The end date of the agenda period", }, inventoryObjectId: { propDefinition: [ bookingExperts, "inventoryObjectId", (c) => ({ administrationId: c.administrationId, }), ], }, rentableId: { propDefinition: [ bookingExperts, "rentableId", (c) => ({ administrationId: c.administrationId, inventoryObjectId: c.inventoryObjectId, }), ], }, }, async run({ $ }) { const { data } = await this.bookingExperts.createAgendaPeriod({ $, administrationId: this.administrationId, type: this.type, data: { data: { type: "agenda_period", attributes: { label: this.label, start_date: this.startDate, end_date: this.endDate, }, relationships: { inventory_object: this.inventoryObjectId ? { data: { type: "inventory_object", id: this.inventoryObjectId, }, } : undefined, rentable: { data: { type: "rentable", id: this.rentableId, }, }, }, }, }, }); $.export("$summary", "Agenda period created"); return data; }, };