// Type definitions that can be used in both client and server components
export interface ItemQcCategoryMappingInfo {
  id: number;
  itemId: number;
  itemCode?: string;
  itemName?: string;
  qcCategoryId: number;
  qcCategoryCode?: string;
  qcCategoryName?: string;
  type?: string;
}
export interface QcCategoryResult {
  id: number;
  code: string;
  name: string;
  description?: string;
  type?: string | null;  // add this: items_qc_category_mapping.type for this category
}
export interface QcItemInfo {
  id: number;
  order: number;
  qcItemId: number;
  code: string;
  name?: string;
  description?: string;
}

export interface DeleteResponse {
  success: boolean;
  message?: string;
  canDelete: boolean;
}

export interface QcCategoryWithCounts {
  id: number;
  code: string;
  name: string;
  description?: string;
  itemCount: number;
  qcItemCount: number;
}

export interface QcCategoryWithItemCount {
  id: number;
  code: string;
  name: string;
  description?: string;
  itemCount: number;
}

export interface QcCategoryWithQcItemCount {
  id: number;
  code: string;
  name: string;
  description?: string;
  qcItemCount: number;
}

export interface QcItemWithCounts {
  id: number;
  code: string;
  name: string;
  description?: string;
  qcCategoryCount: number;
}

// Type definitions that match the server-only types
export interface QcCategoryResult {
  id: number;
  code: string;
  name: string;
  description?: string;
}

export interface QcItemResult {
  id: number;
  code: string;
  name: string;
  description: string;
}

export interface ItemsResult {
  id: string | number;
  code: string;
  name: string;
  description: string | undefined;
  remarks: string | undefined;
  shelfLife: number | undefined;
  countryOfOrigin: string | undefined;
  maxQty: number | undefined;
  type: string;
  qcChecks: any[];
  action?: any;
  fgName?: string;
  excludeDate?: string;
  qcCategory?: QcCategoryResult;
  store_id?: string | undefined;
  warehouse?: string | undefined;
  area?: string | undefined;
  slot?: string | undefined;
  LocationCode?: string | undefined;
  locationCode?: string | undefined;
  isEgg?: boolean | undefined;
  isFee?: boolean | undefined;
  isBag?: boolean | undefined;
}

