const SS = SpreadsheetApp.getActiveSpreadsheet();
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const sheet = SS.getSheetByName('transactions') || SS.insertSheet('transactions');
if (sheet.getLastRow() === 0) {
sheet.appendRow(['ID','วันที่','ประเภท','บัญชี','หมวดหมู่','โน้ต','จำนวน','สกุลเงิน']);
}
if (data.action === 'add') {
sheet.appendRow([data.id,data.date,data.type,data.account,data.label,data.note,data.amount,data.currency]);
} else if (data.action === 'delete') {
const rows = sheet.getDataRange().getValues();
for (let i = rows.length - 1; i >= 1; i--) {
if (String(rows[i][0]) === String(data.id)) { sheet.deleteRow(i + 1); break; }
}
} else if (data.action === 'reset') {
const lastRow = sheet.getLastRow();
if (lastRow > 1) sheet.deleteRows(2, lastRow - 1);
}
return ContentService.createTextOutput(JSON.stringify({ok:true})).setMimeType(ContentService.MimeType.JSON);
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({ok:false,error:err.message})).setMimeType(ContentService.MimeType.JSON);
}
}
function doGet(e) {
const sheet = SS.getSheetByName('transactions');
if (!sheet || sheet.getLastRow() <= 1) return ContentService.createTextOutput(JSON.stringify({ok:true,data:[]})).setMimeType(ContentService.MimeType.JSON);
const rows = sheet.getDataRange().getValues().slice(1);
const data = rows.map(r => ({id:r[0],date:r[1],type:r[2],account:r[3],label:r[4],note:r[5],amount:r[6],currency:r[7]}));
return ContentService.createTextOutput(JSON.stringify({ok:true,data})).setMimeType(ContentService.MimeType.JSON);
}