import sqlite from 'better-sqlite3'; import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js'; import { addOrUpdateLotField } from './addOrUpdateLotField.js'; import { deleteLotField } from './deleteLotField.js'; export function updateLot(lotForm, requestSession) { const database = sqlite(databasePath); const rightNowMillis = Date.now(); const result = database .prepare(`update Lots set lotName = ?, lotTypeId = ?, lotStatusId = ?, mapId = ?, mapKey = ?, lotLatitude = ?, lotLongitude = ?, recordUpdate_userName = ?, recordUpdate_timeMillis = ? where lotId = ? and recordDelete_timeMillis is null`) .run(lotForm.lotName, lotForm.lotTypeId, lotForm.lotStatusId === '' ? undefined : lotForm.lotStatusId, lotForm.mapId === '' ? undefined : lotForm.mapId, lotForm.mapKey, lotForm.lotLatitude === '' ? undefined : lotForm.lotLatitude, lotForm.lotLongitude === '' ? undefined : lotForm.lotLongitude, requestSession.user.userName, rightNowMillis, lotForm.lotId); if (result.changes > 0) { const lotTypeFieldIds = (lotForm.lotTypeFieldIds ?? '').split(','); for (const lotTypeFieldId of lotTypeFieldIds) { const lotFieldValue = lotForm['lotFieldValue_' + lotTypeFieldId]; if (lotFieldValue && lotFieldValue !== '') { addOrUpdateLotField({ lotId: lotForm.lotId, lotTypeFieldId, lotFieldValue }, requestSession, database); } else { deleteLotField(lotForm.lotId, lotTypeFieldId, requestSession, database); } } } database.close(); return result.changes > 0; } export function updateLotStatus(lotId, lotStatusId, requestSession) { const database = sqlite(databasePath); const rightNowMillis = Date.now(); const result = database .prepare(`update Lots set lotStatusId = ?, recordUpdate_userName = ?, recordUpdate_timeMillis = ? where lotId = ? and recordDelete_timeMillis is null`) .run(lotStatusId === '' ? undefined : lotStatusId, requestSession.user.userName, rightNowMillis, lotId); database.close(); return result.changes > 0; } export default updateLot;