import { PageView } from '../../domain/entities/PageView';
import { EntityType } from '../../domain/types/PageView';

export interface PageViewRepository {
  save(pageView: PageView): Promise<void>;
  findById(id: string): Promise<PageView | null>;
  findByEntityId(entityType: EntityType, entityId: string): Promise<PageView[]>;
  findByDateRange(startDate: Date, endDate: Date): Promise<PageView[]>;
  findBySession(sessionId: string): Promise<PageView[]>;
  countByEntityId(entityType: EntityType, entityId: string, since?: Date): Promise<number>;
  countUniqueVisitors(entityType: EntityType, entityId: string, since?: Date): Promise<number>;
}
