21 lines
639 B
TypeScript
21 lines
639 B
TypeScript
|
|
import { CalendarEvent } from '../types/CalendarTypes';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* IEventRepository - Interface for event data loading
|
||
|
|
*
|
||
|
|
* Abstracts the data source for calendar events, allowing easy switching
|
||
|
|
* between mock data, REST API, GraphQL, or other data sources.
|
||
|
|
*
|
||
|
|
* Implementations:
|
||
|
|
* - MockEventRepository: Loads from local JSON file
|
||
|
|
* - ApiEventRepository: (Future) Loads from backend API
|
||
|
|
*/
|
||
|
|
export interface IEventRepository {
|
||
|
|
/**
|
||
|
|
* Load all calendar events from the data source
|
||
|
|
* @returns Promise resolving to array of CalendarEvent objects
|
||
|
|
* @throws Error if loading fails
|
||
|
|
*/
|
||
|
|
loadEvents(): Promise<CalendarEvent[]>;
|
||
|
|
}
|