import type { z } from "zod";
import type {
  createFrameShapeSchema,
  updateFrameShapeSchema,
  frameShapeListQuerySchema,
  frameShapeIdParamSchema,
  frameShapeSlugParamSchema,
} from "../validators/frameShapeValidators.js";

export type CreateFrameShapeInput = z.infer<typeof createFrameShapeSchema>;
export type UpdateFrameShapeInput = z.infer<typeof updateFrameShapeSchema>;
export type FrameShapeListQuery = z.infer<typeof frameShapeListQuerySchema>;
export type FrameShapeIdParam = z.infer<typeof frameShapeIdParamSchema>;
export type FrameShapeSlugParam = z.infer<typeof frameShapeSlugParamSchema>;

export type FrameShapeAdminListItem = {
  id: number;
  name: string;
  slug: string;
  isActive: boolean;
  media: Array<{
    id: number;
    url: string;
    altText: string | null;
    isPrimary: boolean;
    sortOrder: number;
  }>;
  productCount: number;
  createdAt: Date;
  updatedAt: Date;
};

export type FrameShapeAdminDetail = FrameShapeAdminListItem;
