// types/eventPayloadMap.d.ts

import type { EVENTS } from "./events.js";

export interface EventPayloadMap {
  CREATE_EVENT: {
    eventName: string;
    externalEventId: string;
    status: string;
  };
  GET_EVENT: {
    externalEventId: string;
    found: boolean;
  };
  GET_EVENTS: {
    count: number;
  };
  DELETE_EVENT: {
    externalEventId: string;
    success: boolean;
  };
  REGISTER_EMAIL: {
    email: string;
    externalEventId: string;
    subscriberState: string;
    timestamp: number;
  };
  GET_CONTACTS_BY_STATE: {
    externalEventId: string;
    subscriberState: string;
    count: number;
  };
  CREATE_OR_FIND_CONTACT_LIST: {
    listName: string;
    listId: string;
    created: boolean;
  };
  GET_CONTACT_EVENT_STATE: {
    email: string;
    externalEventId: string;
    state: string;
  };
  ADD_CONTACT_TO_LIST: {
    listId: string;
    contactId: string;
  };
  REMOVE_CONTACT_FROM_LIST: {
    listId: string;
    contactId: string;
  };
  ASSOCIATE_LIST_WITH_EVENT: {
    eventId: string;
    listId: string;
  };
  MARKETING_EVENT_ERROR: {
    action: string;
    error: unknown;
  };
}
