import type { z } from "zod";
import type {
  createBrandSchema,
  updateBrandSchema,
  brandListQuerySchema,
  brandIdParamSchema,
  brandSlugParamSchema,
} from "../validators/brandValidators.js";

export type CreateBrandInput = z.infer<typeof createBrandSchema>;
export type UpdateBrandInput = z.infer<typeof updateBrandSchema>;
export type BrandListQuery = z.infer<typeof brandListQuerySchema>;
export type BrandIdParam = z.infer<typeof brandIdParamSchema>;
export type BrandSlugParam = z.infer<typeof brandSlugParamSchema>;

export type BrandAdminListItem = {
  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 BrandAdminDetail = BrandAdminListItem;
