/* * Copyright (c) 2026 by Christian Kellner. * Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause */ /** @import { SpecFilter, SpatialFilter } from './filter.js' */ /** * @typedef {Object} Job * @property {string} id Job ID. * @property {string} [userId] Owner user id. * @property {string} [name] Job display name. * @property {boolean} [enabled] Whether the job is enabled. * @property {Array} [blacklist] Blacklist entries. * @property {Array} [provider] Provider configuration list. * @property {Object} [notificationAdapter] Notification configuration. * @property {Array} [shared_with_user] Users this job is shared with. * @property {SpatialFilter | null} [spatialFilter] Optional spatial filter configuration as GeoJSON FeatureCollection. * @property {SpecFilter | null} [specFilter] Optional listing specifications. * @property {number} [numberOfFoundListings] Count of active listings for this job. * @property {number | null} [lastRunAt] Epoch ms at which the job was last triggered, or null if never triggered. */ export {};