Features: - Multi-menu support with time-based availability - Menu hours validation against business operating hours - Setup wizard now creates Menu records and links categories - New menus.cfm API for menu CRUD operations - Category schedule filtering (day/time based visibility) - Beacon UUID lookup API for customer app - Parent/child business relationships for franchises - Category listing API for menu builder Portal improvements: - Menu builder theming to match admin UI - Brand color picker fix - Header image preview improvements API fixes: - Filter demo/hidden businesses from restaurant list - Improved error handling throughout Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
30 lines
847 B
Text
30 lines
847 B
Text
<cfsetting showdebugoutput="false">
|
|
<cfsetting enablecfoutputonly="true">
|
|
<cfcontent type="application/json; charset=utf-8">
|
|
|
|
<cfscript>
|
|
try {
|
|
// Check if columns already exist
|
|
checkCols = queryExecute(
|
|
"SHOW COLUMNS FROM Addresses LIKE 'AddressLat'",
|
|
[],
|
|
{ datasource = "payfrit" }
|
|
);
|
|
|
|
if (checkCols.recordCount EQ 0) {
|
|
// Add the columns
|
|
queryExecute(
|
|
"ALTER TABLE Addresses
|
|
ADD COLUMN AddressLat DECIMAL(10,7) NULL,
|
|
ADD COLUMN AddressLng DECIMAL(10,7) NULL",
|
|
[],
|
|
{ datasource = "payfrit" }
|
|
);
|
|
writeOutput(serializeJSON({ "OK": true, "MESSAGE": "Columns added successfully" }));
|
|
} else {
|
|
writeOutput(serializeJSON({ "OK": true, "MESSAGE": "Columns already exist" }));
|
|
}
|
|
} catch (any e) {
|
|
writeOutput(serializeJSON({ "OK": false, "ERROR": e.message }));
|
|
}
|
|
</cfscript>
|