import { ParsedWebhook, WebhookEntityType } from "./types";

export function parseProductWebhookContext(req: any): ParsedWebhook {
	if (!req.body?.data) {
		return { ok: false, reason: "missing_body_data" };
	}
	const scope = String(req.headers?.type || "");
	const websiteId = parseInt(String(req.headers?.website_id ?? ""), 10);
	const entityId = parseInt(String(req.body.data.id ?? ""), 10);
	if (!Number.isFinite(websiteId) || !Number.isFinite(entityId)) {
		return { ok: false, reason: "invalid_website_or_entity_id" };
	}
	const entityType: WebhookEntityType = "product";
	const payload = JSON.stringify({ data: req.body.data });
	const dedupeKey = `${websiteId}:${entityType}:${entityId}`;
	return {
		ok: true,
		dedupeKey,
		job: { websiteId, scope, entityType, entityId, payload },
	};
}
