UNPKG

@tmlmobilidade/interfaces

Version:

This package provides SDK-style connectors for interacting with databases (e.g., stops, plans, rides, alerts) and external providers (e.g., authentication, storage). It simplifies data access and integration across projects.

42 lines (41 loc) 1.24 kB
/* * */ import { MongoCollectionClass } from '../../common/mongo-collection.js'; import { CreateHolidaySchema, UpdateHolidaySchema } from '@tmlmobilidade/types'; import { asyncSingletonProxy } from '@tmlmobilidade/utils'; /* * */ class HolidaysClass extends MongoCollectionClass { static _instance; createSchema = CreateHolidaySchema; updateSchema = UpdateHolidaySchema; constructor() { super(); } static async getInstance() { if (!HolidaysClass._instance) { const instance = new HolidaysClass(); await instance.connect(); HolidaysClass._instance = instance; } return HolidaysClass._instance; } /** * Finds Holiday documents by agency IDs. * * @param ids - The agency IDs to search for * @returns A promise that resolves to an array of matching documents */ async findByAgencyIds(ids) { return this.mongoCollection.find({ agency_ids: { $in: ids } }).toArray(); } getCollectionIndexes() { return []; } getCollectionName() { return 'holidays'; } getEnvName() { return 'DATABASE_URI'; } } /* * */ export const holidays = asyncSingletonProxy(HolidaysClass);