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

/**
 * Additional data provided about Admin activity.
 */
export interface ActivityLogMetadata {
    /** The way the admin signed in. */
    sign_in_method?: string;
    /** The unique identifier for the contact which is provided by the Client. */
    external_id?: string;
    /** The away mode status which is set to true when away and false when returned. */
    away_mode?: boolean;
    /** The reason the Admin is away. */
    away_status_reason?: string;
    /** Indicates if conversations should be reassigned while an Admin is away. */
    reassign_conversations?: boolean;
    /** The action that initiated the status change. */
    source?: string;
    /** Indicates if the status was changed automatically or manually. */
    auto_changed?: string;
    /** The ID of the Admin who initiated the activity. */
    update_by?: number;
    /** The name of the Admin who initiated the activity. */
    update_by_name?: string;
    /** The conversation assignment limit value for an admin. */
    conversation_assignment_limit?: number;
    /** The ticket assignment limit value for an admin. */
    ticket_assignment_limit?: number;
    /** Details about the team whose assignment limit was changed. */
    team?: ActivityLogMetadata.Team;
    /** The team assignment limit value (null if limit was removed). */
    team_assignment_limit?: number;
    /** Indicates if the setting is enabled or disabled. */
    enabled?: boolean;
    /** The ID of the impersonation consent. */
    consent_id?: number;
    /** The timestamp when the impersonation consent expires. */
    expired_at?: string;
    /** The state of settings or values before the change. Structure varies by activity type. */
    before?: Record<string, unknown>;
    /** The state of settings or values after the change. Structure varies by activity type. */
    after?: Record<string, unknown>;
}

export namespace ActivityLogMetadata {
    /**
     * Details about the team whose assignment limit was changed.
     */
    export interface Team {
        /** The ID of the team. */
        id?: number;
        /** The name of the team. */
        name?: string;
    }
}
