import type { BurialSite } from '../types/recordTypes.js' import getBurialSiteComments from './getBurialSiteComments.js' import getBurialSiteInterments from './getBurialSiteContracts.js' import getBurialSiteFields from './getBurialSiteFields.js' import { acquireConnection } from './pool.js' const baseSQL = `select l.burialSiteId, l.burialSiteTypeId, t.burialSiteType, l.burialSiteNameSegment1, l.burialSiteNameSegment2, l.burialSiteNameSegment3, l.burialSiteNameSegment4, l.burialSiteNameSegment5, l.burialSiteStatusId, s.burialSiteStatus, l.cemeteryId, m.cemeteryName, m.cemeterySvg, l.cemeterySvgId, l.burialSiteLatitude, l.burialSiteLongitude, from BurialSites l left join BurialSiteTypes t on l.burialSiteTypeId = t.burialSiteTypeId left join BurialSiteStatuses s on l.burialSiteStatusId = s.burialSiteStatusId left join Cemeteries m on l.cemeteryId = m.cemeteryId where l.recordDelete_timeMillis is null` async function _getBurialSite( sql: string, burialSiteIdOrLotName: number | string ): Promise { const database = await acquireConnection() const burialSite = database.prepare(sql).get(burialSiteIdOrLotName) as BurialSite | undefined if (burialSite !== undefined) { const BurialSiteContracts = await getBurialSiteInterments( { burialSiteId: burialSite.burialSiteId }, { includeOccupants: true, includeFees: false, includeTransactions: false, limit: -1, offset: 0 }, database ) burialSite.burialSiteContracts = BurialSiteContracts.BurialSiteContracts burialSite.burialSiteFields = await getBurialSiteFields(burialSite.burialSiteId, database) burialSite.burialSiteComments = await getBurialSiteComments(burialSite.burialSiteId, database) } database.release() return burialSite } // TODO export async function getLotByLotName( lotName: string ): Promise { return await _getBurialSite(`${baseSQL} and l.lotName = ?`, lotName) } export default async function getLot( burialSiteId: number | string ): Promise { return await _getBurialSite(`${baseSQL} and l.burialSiteId = ?`, burialSiteId) }