import { ImpedimentDTO } from '@swagger/remi';
import { RemissionPlacementType } from '../types/remission-placement-types';
import { RemissionSupplier } from './remission-supplier';

export interface RemissionProduct {
  /**
   * Produkt PK
   */
  id: number;

  /**
   * Bild Identifikationsnummber
   */
  imageId: string;

  /**
   * Autor(en)
   */

  contributors: string;

  /**
   * Name des Artikels
   */
  name: string;

  /**
   * Format des Buchs Kurzform (z.B: HC)
   */
  format: string;

  /**
   * Format des Buchs Langform (z.B: Buch (gebunden))
   */
  formatDetail: string;

  /**
   * Artikelnummer
   */
  ean: string;

  /**
   * Preis des Artikels
   */
  price: number;

  /**
   * Währeng des Artikelpreis
   */
  currency: string;

  /**
   * Produktgruppe (z.B. 112)
   */
  productGroup: string;

  /**
   * Name der Produktgruppe (z.B. Romane)
   */
  productGroupName: string;

  /**
   * Aktueller Bestand des Artikels
   */
  inStock: number;

  /**
   * Remi-Menge
   */
  remissionQuantity: number;

  /**
   * Aktueller Bestand minus Remi-Menge
   */
  remainingQuantity: number;

  /**
   * Artikel-Platzierung (z.B. Stapelplatz)
   */
  placementType: RemissionPlacementType;

  /**
   * Grund für Remissions (Remi-Grund)
   */
  remissionReason: string;

  /**
   * Ausgabe / Edition
   */
  edition: string;

  /**
   * Artikel-Features (z.B. key: 'SOE')
   */
  features: { key: string; name: string }[];

  /**
   * Produktnummer des internen Warenkatalogs
   */
  catalogProductNumber?: string;

  /**
   * Restmenge (=Teilmenge des Artikels auf Warenbegleitschein)
   */
  isResidual?: boolean;

  /**
   * Remissions-Ziel / Lieferant (z.B. Libri)
   */
  target?: RemissionSupplier;

  /**
   * Wurde das Produkt manuell zur Remissionsliste hinzugefügt
   */
  isManuallyAdded?: boolean;

  /**
   *
   */
  department?: string;

  impediment?: ImpedimentDTO;
}
