/**
 * 门店列表页专属类型定义：
 * - 页面状态（筛选、分页、抽屉表单）
 * - 组件交互参数
 */
import type {
  ServiceType,
  StoreAuditStatus,
  StoreBusinessStatus,
} from '#/api/store';

/** 表格分页变更参数。 */
export interface TablePagination {
  current?: number;
  pageSize?: number;
}

/** 下拉选项通用结构。 */
export interface SelectOptionItem<T extends number | string> {
  label: string;
  value: T;
}

/** 页面分页状态。 */
export interface PagePaginationState {
  current: number;
  pageSize: number;
  total: number;
}

/** 页面筛选条件。 */
export interface StoreFilterState {
  auditStatus?: StoreAuditStatus;
  businessStatus?: StoreBusinessStatus;
  keyword: string;
  serviceType?: ServiceType;
}

/** 抽屉表单状态。 */
export interface StoreFormState {
  address: string;
  contactPhone: string;
  coverImage: string;
  id: string;
  managerName: string;
  name: string;
  serviceTypes: ServiceType[];
}

/** 状态标签元信息。 */
export interface StatusTagMeta {
  color: string;
  text: string;
}

/** 统计卡片项。 */
export interface StatCardItem {
  color: string;
  title: string;
  value: number;
}

/** 抽屉模式。 */
export type DrawerMode = 'create' | 'edit';

/** 表格分页展示对象。 */
export interface StoreTablePagination {
  current: number;
  pageSize: number;
  showSizeChanger: boolean;
  showTotal: (total: number) => string;
  total: number;
}
