Sets up calendar package with core infrastructure
Adds core calendar package components including: - Base services for events, resources, and settings - Calendar app and orchestrator - Build and bundling configuration - IndexedDB storage setup Prepares foundational architecture for calendar functionality
This commit is contained in:
parent
12e7594f30
commit
ceb44446f0
97 changed files with 13858 additions and 1 deletions
|
|
@ -0,0 +1,25 @@
|
|||
import { IDepartment, EntityType, IEventBus } from '../../types/CalendarTypes';
|
||||
import { DepartmentStore } from './DepartmentStore';
|
||||
import { BaseEntityService } from '../../storage/BaseEntityService';
|
||||
import { IndexedDBContext } from '../../storage/IndexedDBContext';
|
||||
|
||||
/**
|
||||
* DepartmentService - CRUD operations for departments in IndexedDB
|
||||
*/
|
||||
export class DepartmentService extends BaseEntityService<IDepartment> {
|
||||
readonly storeName = DepartmentStore.STORE_NAME;
|
||||
readonly entityType: EntityType = 'Department';
|
||||
|
||||
constructor(context: IndexedDBContext, eventBus: IEventBus) {
|
||||
super(context, eventBus);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get departments by IDs
|
||||
*/
|
||||
async getByIds(ids: string[]): Promise<IDepartment[]> {
|
||||
if (ids.length === 0) return [];
|
||||
const results = await Promise.all(ids.map(id => this.get(id)));
|
||||
return results.filter((d): d is IDepartment => d !== null);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue