<cfsetting showdebugoutput="false">
<cfsetting enablecfoutputonly="true">
<cfcontent type="application/json; charset=utf-8" reset="true">

<cfscript>
/**
 * Delete a business (and its address)
 * POST: { "BusinessID": 52 }
 */

function readJsonBody() {
    var raw = getHttpRequestData().content;
    if (isNull(raw) || len(trim(raw)) == 0) return {};
    try {
        return deserializeJSON(raw);
    } catch (any e) {
        return {};
    }
}

response = { "OK": false };

try {
    data = readJsonBody();
    bizID = val(data.BusinessID ?: 0);

    if (bizID <= 0) {
        response["ERROR"] = "BusinessID required";
    } else {
        // Get address ID first
        qBiz = queryExecute("SELECT AddressID FROM Businesses WHERE ID = :id", { id: bizID }, { datasource = "payfrit" });

        if (qBiz.recordCount == 0) {
            response["ERROR"] = "Business not found";
        } else {
            addrID = qBiz.AddressID;

            // Delete business
            queryExecute("DELETE FROM Businesses WHERE ID = :id", { id: bizID }, { datasource = "payfrit" });

            // Delete address if exists
            if (val(addrID) > 0) {
                queryExecute("DELETE FROM Addresses WHERE ID = :id", { id: addrID }, { datasource = "payfrit" });
            }

            response["OK"] = true;
            response["MESSAGE"] = "Deleted BusinessID " & bizID;
        }
    }
} catch (any e) {
    response["ERROR"] = e.message;
}

writeOutput(serializeJSON(response));
</cfscript>
