import type { ApiClient } from '../../core/ApiClient' import { BaseCrudApi } from '../../core/BaseCrudApi' import type { TicketTopic, CreateTicketTopicPayload, UpdateTicketTopicPayload } from './types' export class TicketTopicsApi extends BaseCrudApi< TicketTopic, CreateTicketTopicPayload, UpdateTicketTopicPayload > { constructor(client: ApiClient) { super(client, '/ticket-topics') this.archive = this.archive.bind(this) this.unarchive = this.unarchive.bind(this) } /** * Archives a ticket topic. Unlike most resources, ticket-topics archive through a * dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`. * @permissions ticketTopic.update */ archive(id: string, headers?: Record): Promise { return this.client.post( `${this.basePath}/${id}/archive`, { archive: true }, headers, ) } /** * Restores a previously archived ticket topic via the same dedicated endpoint. * @permissions ticketTopic.update */ unarchive(id: string, headers?: Record): Promise { return this.client.post( `${this.basePath}/${id}/archive`, { archive: false }, headers, ) } }