// This file was auto-generated by Fern from our API Definition.

import type * as Intercom from "../../../index.js";

/**
 * Tickets are how you track requests from your users.
 */
export interface Ticket {
    /** Always ticket */
    type: "ticket";
    /** The unique identifier for the ticket which is given by Intercom. */
    id: string;
    /** The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries. */
    ticket_id: string;
    /** Category of the Ticket. */
    category: Ticket.Category;
    ticket_attributes: Intercom.TicketCustomAttributes;
    ticket_state?: Intercom.TicketState;
    ticket_type?: Intercom.TicketType;
    contacts: Intercom.TicketContacts;
    /** The id representing the admin assigned to the ticket. */
    admin_assignee_id?: string;
    /** The id representing the team assigned to the ticket. */
    team_assignee_id?: string;
    /** The time the ticket was created as a UTC Unix timestamp. */
    created_at?: number;
    /** The last time the ticket was updated as a UTC Unix timestamp. */
    updated_at?: number;
    /** Whether or not the ticket is open. If false, the ticket is closed. */
    open?: boolean;
    /** The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed. */
    snoozed_until?: number;
    linked_objects?: Intercom.LinkedObjectList;
    ticket_parts?: Intercom.TicketParts;
    /** Whether or not the ticket is shared with the customer. */
    is_shared?: boolean;
}

export namespace Ticket {
    /** Category of the Ticket. */
    export const Category = {
        Customer: "Customer",
        BackOffice: "Back-office",
        Tracker: "Tracker",
    } as const;
    export type Category = (typeof Category)[keyof typeof Category];
}
