/**
 * Inventory Count types (manual – not in OpenAPI spec)
 */

export type InventoryCountStatus = 'OPEN' | 'COUNTING' | 'COMPLETED' | 'CANCELLED';

export interface CountItemDTO {
  id: string;
  articleId: string;
  expectedQuantityAmount: string;
  expectedQuantityUnit: string;
  actualQuantityAmount: string | null;
  actualQuantityUnit: string | null;
  deviation: string | null;
}

export interface InventoryCountDTO {
  id: string;
  storageLocationId: string;
  countDate: string;
  initiatedBy: string;
  completedBy: string | null;
  cancellationReason: string | null;
  status: InventoryCountStatus;
  createdAt: string;
  countItems: CountItemDTO[];
}

export interface CreateInventoryCountRequest {
  storageLocationId: string;
  countDate: string;
}

export interface RecordCountItemRequest {
  actualQuantityAmount: string;
  actualQuantityUnit: string;
}

export interface CancelInventoryCountRequest {
  reason: string;
}
