/**
 * 文件职责：堂食管理页面类型定义。
 * 1. 声明区域、桌位、批量生成表单态。
 * 2. 声明页面快照与选择项类型。
 */
import type {
  DineInAreaDto,
  DineInBasicSettingsDto,
  DineInTableDto,
  DineInTableStatus,
} from '#/api/store-dinein';

export type DineInAreaDrawerMode = 'create' | 'edit';
export type DineInTableDrawerMode = 'create' | 'edit';

export interface DineInAreaFormState {
  description: string;
  id: string;
  name: string;
  sort: number;
}

export interface DineInTableFormState {
  areaId: string;
  code: string;
  id: string;
  isDisabled: boolean;
  seats: number;
  sourceStatus: DineInTableStatus;
  tags: string[];
}

export interface DineInBatchFormState {
  areaId: string;
  codePrefix: string;
  count: number;
  seats: number;
  startNumber: number;
}

export interface DineInSettingsSnapshot {
  areas: DineInAreaDto[];
  basicSettings: DineInBasicSettingsDto;
  tables: DineInTableDto[];
}

export interface DineInSeatsOption {
  label: string;
  value: number;
}

export interface DineInStatusOption {
  className: string;
  color: string;
  label: string;
  value: DineInTableStatus;
}
