import type { OrderDetailDto } from "ttm-shared";
import { io } from "@/server";
import { tracked } from "@/core/tracked";

export const wsOrders = {
    async updateOrder(shopId: string, order: OrderDetailDto) {
        io.to(`shop:${shopId}`).emit("orders:upsert", { order });
    },
    async createOrderEvent(
        shopId: string,
        orderId: string,
        type: string,
        payload: Record<string, any>,
        revision?: number,
        userId?: string
    ) {
        const t = tracked({ shopId, entity: "Order", actorUserId: userId });
        const event = await t.emit(type, payload, orderId, revision ?? 0);
        return event;
    }
};
