export interface TimedDiscountActivity {
  id: number;
  activityName: string;
  activityDesc: string;
  startTime: string;
  endTime: string;
  discountType: number;
  discountValue: number;
  minDiscountPrice: number;
  applyScope: number;
  deviceScope: number;
  productScope: number;
  productTypes: string;
  priorityProductTypes: string;
  minStock: number;
  maxStock: number;
  status: number;
  autoExecute: number;
  notifyOnExecute: number;
  creatorId: number;
  creatorName: string;
  createTime: string;
  updateTime: string;
  statusLabel: string;
  statusColor: string;
  discountTypeLabel: string;
  applyScopeLabel: string;
  deviceScopeLabel: string;
  productScopeLabel: string;
  shopIds: number[];
  deviceIds: string[];
  productIds: number[];
  productTypeList: string[];
  priorityProductTypeList: string[];
}

export interface TimedDiscountRecord {
  id: number;
  activityId: number;
  activityName: string;
  executeDate: string;
  executeTime: string;
  shopId: number;
  shopName: string;
  deviceId: string;
  deviceName: string;
  totalProducts: number;
  priorityProducts: number;
  totalStock: number;
  originalValue: number;
  discountValue: number;
  savedValue: number;
  status: number;
  errorMessage: string;
  executeDuration: number;
  createTime: string;
  statusLabel: string;
  statusColor: string;
}

export interface PriceAdjustmentLog {
  id: number;
  recordId: number;
  activityId: number;
  shopId: number;
  shopName: string;
  deviceId: string;
  deviceName: string;
  productId: number;
  productName: string;
  productType: string;
  stock: number;
  originalPrice: number;
  discountType: number;
  discountValue: number;
  discountedPrice: number;
  isPriority: number;
  adjustTime: string;
  restoreTime: string;
  restoreStatus: number;
  saleQuantity: number;
  saleAmount: number;
  restoreStatusLabel: string;
  restoreStatusColor: string;
  discountTypeLabel: string;
}

export interface TimedDiscountStatistics {
  id: number;
  activityId: number;
  statDate: string;
  shopId: number;
  shopName: string;
  totalAdjustedProducts: number;
  priorityProducts: number;
  totalAdjustedStock: number;
  totalSoldQuantity: number;
  prioritySoldQuantity: number;
  originalValue: number;
  actualSales: number;
  savedAmount: number;
  wasteReductionRate: number;
  sellThroughRate: number;
  createTime: string;
  updateTime: string;
  activityName: string;
}

export interface SearchFormProps {
  activityName: string;
  status: number | undefined;
  discountType: number | undefined;
}

export interface RecordSearchFormProps {
  activityId: number | undefined;
  executeDateStart: string;
  executeDateEnd: string;
  shopId: number | undefined;
  deviceId: string;
  status: number | undefined;
}

export interface FormDataProps {
  id?: number;
  activityName: string;
  activityDesc: string;
  startTime: string;
  endTime: string;
  discountType: number;
  discountValue: number;
  minDiscountPrice: number;
  applyScope: number;
  deviceScope: number;
  productScope: number;
  productTypes: string;
  priorityProductTypes: string;
  minStock: number;
  maxStock: number;
  autoExecute: number;
  notifyOnExecute: number;
  shopIds: number[];
  deviceIds: string[];
  productIds: number[];
}
