/** * Repository Interface: IPageViewRepository * * Defines persistence operations for PageView entities. */ import type { PageView, EntityType } from '../entities/PageView'; export interface IPageViewRepository { save(pageView: PageView): Promise; findById(id: string): Promise; findByEntityId(entityType: EntityType, entityId: string): Promise; findByDateRange(startDate: Date, endDate: Date): Promise; findBySession(sessionId: string): Promise; countByEntityId(entityType: EntityType, entityId: string, since?: Date): Promise; countUniqueVisitors(entityType: EntityType, entityId: string, since?: Date): Promise; }