/** * Repository Interface: IAnalyticsSnapshotRepository * * Defines persistence operations for AnalyticsSnapshot entities. */ import type { AnalyticsSnapshot, SnapshotPeriod, SnapshotEntityType } from '../entities/AnalyticsSnapshot'; export interface IAnalyticsSnapshotRepository { save(snapshot: AnalyticsSnapshot): Promise; findById(id: string): Promise; findByEntity(entityType: SnapshotEntityType, entityId: string): Promise; findByPeriod( entityType: SnapshotEntityType, entityId: string, period: SnapshotPeriod, startDate: Date, endDate: Date ): Promise; findLatest(entityType: SnapshotEntityType, entityId: string, period: SnapshotPeriod): Promise; getHistoricalSnapshots( entityType: SnapshotEntityType, entityId: string, period: SnapshotPeriod, limit: number ): Promise; }