import type { PageView } from '../entities/PageView';

export interface IPageViewRepository {
  save(pageView: PageView): Promise<void>;
  findById(id: string): Promise<PageView | null>;
  findByEntityId(entityId: string): Promise<PageView[]>;
  findBySessionId(sessionId: string): Promise<PageView[]>;
  countByEntityId(entityId: string): Promise<number>;
  getUniqueVisitorsCount(entityId: string, startDate: Date, endDate: Date): Promise<number>;
  getAverageSessionDuration(entityId: string, startDate: Date, endDate: Date): Promise<number>;
  getBounceRate(entityId: string, startDate: Date, endDate: Date): Promise<number>;
}