import type { TransferHandlerMode } from "../enums.js";
export interface TransferRouteStationRef {
    id: string;
    name: string;
}
export interface TransferRouteRunnerRef {
    id: string;
    displayName: string | null;
    username: string;
}
/**
 * Route logistique configurée entre deux stations d'un shop.
 * Représente le trajet d'un produit de `fromStation` vers `toStation`
 * et définit qui est responsable du transport (handlerMode).
 */
export interface TransferRouteDto {
    id: string;
    shopId: string;
    fromStationId: string;
    fromStation: TransferRouteStationRef;
    toStationId: string;
    toStation: TransferRouteStationRef;
    /**
     * Mode de transport :
     * - RUNNER         : un runner dédié (potentiellement assignedRunner)
     * - SELF_CASHIER   : le ShopUser de la station source se déplace
     * - SOURCE_STATION : la station source achemine elle-même
     */
    handlerMode: TransferHandlerMode;
    /** Runner dédié à cette route (optionnel, si handlerMode = RUNNER) */
    assignedRunner: TransferRouteRunnerRef | null;
    active: boolean;
    createdAt: string;
    updatedAt: string;
}
export interface TransferRouteListItemDto {
    id: string;
    fromStationId: string;
    fromStationName: string;
    toStationId: string;
    toStationName: string;
    handlerMode: TransferHandlerMode;
    assignedRunnerId: string | null;
    assignedRunnerName: string | null;
    active: boolean;
}
export interface CreateTransferRouteDto {
    fromStationId: string;
    toStationId: string;
    handlerMode: TransferHandlerMode;
    assignedRunnerId?: string | null;
}
export interface UpdateTransferRouteDto {
    handlerMode?: TransferHandlerMode;
    assignedRunnerId?: string | null;
    active?: boolean;
}
