export type ReviewStatus = 'pending' | 'published' | 'rejected';

export interface Review {
  id: string;
  userId: string;
  productId: string;
  orderId: string;
  orderItemId: string;
  rating: number;
  title: string;
  body: string;
  status: ReviewStatus;
  createdAt: Date;
  updatedAt: Date;
}

export interface SubmitReviewCommand {
  userId: string;
  productId: string;
  orderItemId: string;
  rating: number;
  title: string;
  body: string;
}

export interface ProductReviewAggregate {
  productId: string;
  averageRating: number;
  count: number;
}

export interface PublishedReview {
  id: string;
  productId: string;
  userId: string;
  rating: number;
  title: string;
  body: string;
  createdAt: Date;
}
