ssm cemetery details

pull/11/head
Dan Gowans 2025-04-16 11:21:02 -04:00
parent a4e4a11a59
commit 86cc71d235
2 changed files with 479 additions and 51 deletions

View File

@ -2,20 +2,202 @@
/* eslint-disable no-console */ /* eslint-disable no-console */
import addCemetery from '../../database/addCemetery.js'; import addCemetery from '../../database/addCemetery.js';
import { getCemeteryByKey } from '../../database/getCemetery.js'; import { getCemeteryByKey } from '../../database/getCemetery.js';
const cemeteryToCemeteryName = { const cemeteryKeyToCemetery = {
'00': 'Crematorium', '00': {
GC: 'New Greenwood - Columbarium', cemeteryName: 'Crematorium',
HC: 'Holy Sepulchre - Columbarium', cemeteryDescription: 'At New Greenwood Cemetery',
HS: 'Holy Sepulchre', cemeteryKey: '00',
MA: 'Holy Sepulchre - Mausoleum', cemeterySvg: '',
MN: 'Mausoleum Niche', cemeteryLatitude: '46.56620754',
NG: 'New Greenwood', cemeteryLongitude: '-84.35110152',
NW: 'Niche Wall', cemeteryAddress1: '27 Fourth Line East',
OG: 'Old Greenwood', cemeteryAddress2: '',
PG: 'Pine Grove', cemeteryCity: 'Sault Ste. Marie',
UG: 'New Greenwood - Urn Garden', cemeteryPostalCode: 'P6A 5K8',
WK: 'West Korah', cemeteryProvince: 'ON',
WS: 'West Section' cemeteryPhoneNumber: '705-759-5336',
parentCemeteryId: ''
},
GC: {
cemeteryName: 'New Greenwood - Columbarium',
cemeteryDescription: 'At New Greenwood Cemetery',
cemeteryKey: 'GC',
cemeterySvg: 'newGreenwood-urnGarden.svg',
cemeteryLatitude: '46.56603051',
cemeteryLongitude: '-84.35148239',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
HC: {
cemeteryName: 'Holy Sepulchre - Columbarium',
cemeteryDescription: 'At Holy Sepulchre Cemetery',
cemeteryKey: 'HC',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
HS: {
cemeteryName: 'Holy Sepulchre',
cemeteryDescription: 'North of Fourth Line at the intersection of Fourth Line and Peoples Road.',
cemeteryKey: 'HS',
cemeterySvg: 'holySepulchre-overview.svg',
cemeteryLatitude: '46.56847938',
cemeteryLongitude: '-84.34822083',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
MA: {
cemeteryName: 'Holy Sepulchre - Mausoleum',
cemeteryDescription: 'At Holy Sepulchre Cemetery',
cemeteryKey: 'MA',
cemeterySvg: '',
cemeteryLatitude: '46.56864165',
cemeteryLongitude: '-84.34622526',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
MN: {
cemeteryName: 'Mausoleum Niche',
cemeteryDescription: '',
cemeteryKey: 'MN',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
NG: {
cemeteryName: 'New Greenwood',
cemeteryDescription: 'South of Fourth Line at the intersection of the Fourth Line and Peoples Road.',
cemeteryKey: 'NG',
cemeterySvg: 'newGreenwood-overview.svg',
cemeteryLatitude: '46.56489455',
cemeteryLongitude: '-84.34944391',
cemeteryAddress1: '27 Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: 'P6A 5K8',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
NW: {
cemeteryName: 'Niche Wall',
cemeteryDescription: '',
cemeteryKey: 'NW',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
OG: {
cemeteryName: 'Old Greenwood',
cemeteryDescription: 'South of Fourth Line at the intersection of the Fourth Line and Peoples Road.',
cemeteryKey: 'OG',
cemeterySvg: 'oldGreenwood-overview.svg',
cemeteryLatitude: '46.56468801',
cemeteryLongitude: '-84.35317755',
cemeteryAddress1: 'Fourth Line West',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
PG: {
cemeteryName: 'Pine Grove',
cemeteryDescription: 'Landslide Road across from Kinsmen Park entrance.',
cemeteryKey: 'PG',
cemeterySvg: 'pineGrove-overview.svg',
cemeteryLatitude: '46.58951884',
cemeteryLongitude: '-84.28028584',
cemeteryAddress1: 'Landslide Road',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
UG: {
cemeteryName: 'New Greenwood - Urn Garden',
cemeteryDescription: 'At New Greenwood Cemetery',
cemeteryKey: 'UG',
cemeterySvg: 'newGreenwood-urnGarden.svg',
cemeteryLatitude: '46.56603051',
cemeteryLongitude: '-84.35148239',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
WK: {
cemeteryName: 'West Korah',
cemeteryDescription: "Northeast corner of the intersection of Avery Road and Allen's Side Road.",
cemeteryKey: 'WK',
cemeterySvg: 'westKorah-overview.svg',
cemeteryLatitude: '46.55824799',
cemeteryLongitude: '-84.40500855',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
WS: {
cemeteryName: 'West Section',
cemeteryDescription: 'At Old Greenwood Cemetery',
cemeteryKey: 'WS',
cemeterySvg: '',
cemeteryLatitude: '46.56609690',
cemeteryLongitude: '-84.35562372',
cemeteryAddress1: 'Fourth Line West',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
}
}; };
const cemeteryCache = new Map(); const cemeteryCache = new Map();
export async function getCemeteryIdByKey(cemeteryKeyToSearch, user) { export async function getCemeteryIdByKey(cemeteryKeyToSearch, user) {
@ -32,8 +214,10 @@ export async function getCemeteryIdByKey(cemeteryKeyToSearch, user) {
const cemetery = await getCemeteryByKey(cemeteryKey); const cemetery = await getCemeteryByKey(cemeteryKey);
if (cemetery === undefined) { if (cemetery === undefined) {
console.log(`Creating cemetery: ${cemeteryKey}`); console.log(`Creating cemetery: ${cemeteryKey}`);
const cemeteryId = await addCemetery({ let addForm = cemeteryKeyToCemetery[cemeteryKey];
cemeteryName: cemeteryToCemeteryName[cemeteryKey] ?? cemeteryKey, // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
addForm ??= {
cemeteryName: cemeteryKey,
cemeteryDescription: '', cemeteryDescription: '',
cemeteryKey, cemeteryKey,
cemeterySvg: '', cemeterySvg: '',
@ -45,8 +229,9 @@ export async function getCemeteryIdByKey(cemeteryKeyToSearch, user) {
cemeteryPostalCode: '', cemeteryPostalCode: '',
cemeteryProvince: 'ON', cemeteryProvince: 'ON',
cemeteryPhoneNumber: '', cemeteryPhoneNumber: '',
parentCemeteryId: '', parentCemeteryId: ''
}, user); };
const cemeteryId = await addCemetery(addForm, user);
cemeteryCache.set(cemeteryKey, cemeteryId); cemeteryCache.set(cemeteryKey, cemeteryId);
} }
return cemeteryCache.get(cemeteryKey); return cemeteryCache.get(cemeteryKey);

View File

@ -1,23 +1,265 @@
// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair // eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair
/* eslint-disable no-console */ /* eslint-disable no-console */
import addCemetery from '../../database/addCemetery.js' import addCemetery, {
type AddCemeteryForm
} from '../../database/addCemetery.js'
import { getCemeteryByKey } from '../../database/getCemetery.js' import { getCemeteryByKey } from '../../database/getCemetery.js'
const cemeteryToCemeteryName = { const cemeteryKeyToCemetery: Record<string, AddCemeteryForm> = {
'00': 'Crematorium', '00': {
GC: 'New Greenwood - Columbarium', cemeteryName: 'Crematorium',
HC: 'Holy Sepulchre - Columbarium',
HS: 'Holy Sepulchre', cemeteryDescription: 'At New Greenwood Cemetery',
MA: 'Holy Sepulchre - Mausoleum', cemeteryKey: '00',
MN: 'Mausoleum Niche', cemeterySvg: '',
NG: 'New Greenwood',
NW: 'Niche Wall', cemeteryLatitude: '46.56620754',
OG: 'Old Greenwood', cemeteryLongitude: '-84.35110152',
PG: 'Pine Grove',
UG: 'New Greenwood - Urn Garden', cemeteryAddress1: '27 Fourth Line East',
WK: 'West Korah', cemeteryAddress2: '',
WS: 'West Section' cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: 'P6A 5K8',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '705-759-5336',
parentCemeteryId: ''
},
GC: {
cemeteryName: 'New Greenwood - Columbarium',
cemeteryDescription: 'At New Greenwood Cemetery',
cemeteryKey: 'GC',
cemeterySvg: 'newGreenwood-urnGarden.svg',
cemeteryLatitude: '46.56603051',
cemeteryLongitude: '-84.35148239',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
HC: {
cemeteryName: 'Holy Sepulchre - Columbarium',
cemeteryDescription: 'At Holy Sepulchre Cemetery',
cemeteryKey: 'HC',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
HS: {
cemeteryName: 'Holy Sepulchre',
cemeteryDescription:
'North of Fourth Line at the intersection of Fourth Line and Peoples Road.',
cemeteryKey: 'HS',
cemeterySvg: 'holySepulchre-overview.svg',
cemeteryLatitude: '46.56847938',
cemeteryLongitude: '-84.34822083',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
MA: {
cemeteryName: 'Holy Sepulchre - Mausoleum',
cemeteryDescription: 'At Holy Sepulchre Cemetery',
cemeteryKey: 'MA',
cemeterySvg: '',
cemeteryLatitude: '46.56864165',
cemeteryLongitude: '-84.34622526',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
MN: {
cemeteryName: 'Mausoleum Niche',
cemeteryDescription: '',
cemeteryKey: 'MN',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
NG: {
cemeteryName: 'New Greenwood',
cemeteryDescription:
'South of Fourth Line at the intersection of the Fourth Line and Peoples Road.',
cemeteryKey: 'NG',
cemeterySvg: 'newGreenwood-overview.svg',
cemeteryLatitude: '46.56489455',
cemeteryLongitude: '-84.34944391',
cemeteryAddress1: '27 Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: 'P6A 5K8',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
NW: {
cemeteryName: 'Niche Wall',
cemeteryDescription: '',
cemeteryKey: 'NW',
cemeterySvg: '',
cemeteryLatitude: '',
cemeteryLongitude: '',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
OG: {
cemeteryName: 'Old Greenwood',
cemeteryDescription:
'South of Fourth Line at the intersection of the Fourth Line and Peoples Road.',
cemeteryKey: 'OG',
cemeterySvg: 'oldGreenwood-overview.svg',
cemeteryLatitude: '46.56468801',
cemeteryLongitude: '-84.35317755',
cemeteryAddress1: 'Fourth Line West',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
PG: {
cemeteryName: 'Pine Grove',
cemeteryDescription: 'Landslide Road across from Kinsmen Park entrance.',
cemeteryKey: 'PG',
cemeterySvg: 'pineGrove-overview.svg',
cemeteryLatitude: '46.58951884',
cemeteryLongitude: '-84.28028584',
cemeteryAddress1: 'Landslide Road',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
UG: {
cemeteryName: 'New Greenwood - Urn Garden',
cemeteryDescription: 'At New Greenwood Cemetery',
cemeteryKey: 'UG',
cemeterySvg: 'newGreenwood-urnGarden.svg',
cemeteryLatitude: '46.56603051',
cemeteryLongitude: '-84.35148239',
cemeteryAddress1: 'Fourth Line East',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
WK: {
cemeteryName: 'West Korah',
cemeteryDescription:
"Northeast corner of the intersection of Avery Road and Allen's Side Road.",
cemeteryKey: 'WK',
cemeterySvg: 'westKorah-overview.svg',
cemeteryLatitude: '46.55824799',
cemeteryLongitude: '-84.40500855',
cemeteryAddress1: '',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
},
WS: {
cemeteryName: 'West Section',
cemeteryDescription: 'At Old Greenwood Cemetery',
cemeteryKey: 'WS',
cemeterySvg: '',
cemeteryLatitude: '46.56609690',
cemeteryLongitude: '-84.35562372',
cemeteryAddress1: 'Fourth Line West',
cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '',
cemeteryProvince: 'ON',
cemeteryPhoneNumber: '',
parentCemeteryId: ''
}
} }
const cemeteryCache = new Map<string, number>() const cemeteryCache = new Map<string, number>()
@ -44,29 +286,30 @@ export async function getCemeteryIdByKey(
if (cemetery === undefined) { if (cemetery === undefined) {
console.log(`Creating cemetery: ${cemeteryKey}`) console.log(`Creating cemetery: ${cemeteryKey}`)
const cemeteryId = await addCemetery( let addForm = cemeteryKeyToCemetery[cemeteryKey]
{
cemeteryName: cemeteryToCemeteryName[cemeteryKey] ?? cemeteryKey,
cemeteryDescription: '', // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
cemeteryKey, addForm ??= {
cemeteryName: cemeteryKey,
cemeteryDescription: '',
cemeteryKey,
cemeterySvg: '', cemeterySvg: '',
cemeteryLatitude: '', cemeteryLatitude: '',
cemeteryLongitude: '', cemeteryLongitude: '',
cemeteryAddress1: '', cemeteryAddress1: '',
cemeteryAddress2: '', cemeteryAddress2: '',
cemeteryCity: 'Sault Ste. Marie', cemeteryCity: 'Sault Ste. Marie',
cemeteryPostalCode: '', cemeteryPostalCode: '',
cemeteryProvince: 'ON', cemeteryProvince: 'ON',
cemeteryPhoneNumber: '', cemeteryPhoneNumber: '',
parentCemeteryId: '', parentCemeteryId: ''
}, }
user
) const cemeteryId = await addCemetery(addForm, user)
cemeteryCache.set(cemeteryKey, cemeteryId) cemeteryCache.set(cemeteryKey, cemeteryId)
} }