// eslint-disable-next-line @eslint-community/eslint-comments/disable-enable-pair /* eslint-disable @typescript-eslint/indent */ import { dateStringToInteger, timeStringToInteger } from '@cityssm/utils-datetime' import { acquireConnection } from './pool.js' interface AddWorkOrderMilestoneForm { workOrderId: string | number workOrderMilestoneTypeId: number | string workOrderMilestoneDateString: string workOrderMilestoneTimeString?: string workOrderMilestoneDescription: string workOrderMilestoneCompletionDateString?: string workOrderMilestoneCompletionTimeString?: string } export async function addWorkOrderMilestone( milestoneForm: AddWorkOrderMilestoneForm, user: User ): Promise { const rightNowMillis = Date.now() const database = await acquireConnection() const result = database .prepare( `insert into WorkOrderMilestones ( workOrderId, workOrderMilestoneTypeId, workOrderMilestoneDate, workOrderMilestoneTime, workOrderMilestoneDescription, workOrderMilestoneCompletionDate, workOrderMilestoneCompletionTime, recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` ) .run( milestoneForm.workOrderId, milestoneForm.workOrderMilestoneTypeId === '' ? undefined : milestoneForm.workOrderMilestoneTypeId, milestoneForm.workOrderMilestoneDateString === '' ? 0 : dateStringToInteger(milestoneForm.workOrderMilestoneDateString), (milestoneForm.workOrderMilestoneTimeString ?? '') === '' ? 0 : timeStringToInteger(milestoneForm.workOrderMilestoneTimeString!), milestoneForm.workOrderMilestoneDescription, (milestoneForm.workOrderMilestoneCompletionDateString ?? '') === '' ? undefined : dateStringToInteger( milestoneForm.workOrderMilestoneCompletionDateString! ), (milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === '' ? undefined : timeStringToInteger( milestoneForm.workOrderMilestoneCompletionTimeString! ), user.userName, rightNowMillis, user.userName, rightNowMillis ) database.release() return result.lastInsertRowid as number } export default addWorkOrderMilestone