import type { z } from "zod";
import type {
  createClientReviewSchema,
  updateClientReviewSchema,
  clientReviewListQuerySchema,
  clientReviewIdParamSchema,
} from "../validators/clientReviewValidators.js";

export type CreateClientReviewInput = z.infer<typeof createClientReviewSchema>;
export type UpdateClientReviewInput = z.infer<typeof updateClientReviewSchema>;
export type ClientReviewListQuery = z.infer<typeof clientReviewListQuerySchema>;
export type ClientReviewIdParam = z.infer<typeof clientReviewIdParamSchema>;

export type ClientReviewAdminListItem = {
  id: number;
  clientName: string;
  reviewText: string;
  postUrl: string | null;
  starRating: number;
  isActive: boolean;
  sortOrder: number;
  media: Array<{
    id: number;
    url: string;
    altText: string | null;
    isPrimary: boolean;
    sortOrder: number;
  }>;
  createdAt: Date;
  updatedAt: Date;
};

export type ClientReviewAdminDetail = ClientReviewAdminListItem;
