import type { ITicketAuditedEntity } from "./Common"; import type { TicketMessageActorType } from "./Conversation"; /** * The four actor fields exist because ITicketAuditedEntity.createdBy is a * single uuid-shaped string, which a contact cannot occupy. They follow the * same pairing rule as ITicketActivity: AGENT is identified by createdBy / * updatedBy, CONTACT, BOT and EXTERNAL_COLLABORATOR by the *ExternalId field, * and SYSTEM by neither. */ export interface ITicketNote extends ITicketAuditedEntity { ticketId: string; text: string; version: number; isPublic: boolean; createdByType?: TicketMessageActorType; createdByExternalId?: string; updatedByType?: TicketMessageActorType; updatedByExternalId?: string; } export interface CreateTicketNoteDto { text: string; /** Defaults to false. */ isPublic?: boolean; } /** At least one of `text` / `isPublic` must be present. */ export interface UpdateTicketNoteDto { expectedVersion: number; text?: string; isPublic?: boolean; }