import { inventoryListDbFixtures } from './db/inventory-list.fixture';
import { inventoryQueryFixtures } from './query.fixture';
import { createInventoryListResponse } from './response.fixture';

export const inventoryServiceFixtures = {
  listRows: inventoryListDbFixtures.serviceRows,
  query: inventoryQueryFixtures.serviceQuery,
  repositoryQuery: inventoryQueryFixtures.repositoryQuery,
  expectedResult: createInventoryListResponse({
    cp: [
      {
        itemNo: 'CP26ZXJ#1045',
        stockQty: 2,
        countryCode: 'KR',
        className: 'BOOM PUMP',
      },
    ],
    lp: [
      {
        itemNo: 'ELP990-0298137',
        stockQty: 1,
        countryCode: 'VN',
        className: 'LINE PUMP',
      },
    ],
  }),
};

export const inventoryTransformerFixtures = {
  groupRows: inventoryListDbFixtures.groupRows,
  groupCounts: {
    cp: 1,
    lp: 1,
    pb: 1,
    tp: 0,
    other: 1,
  },
  countryRows: inventoryListDbFixtures.countryRows,
  countryCodes: ['DZ', 'CL', 'KR', 'UNKWN'],
  stockRows: inventoryListDbFixtures.stockRows,
  stockExpectedItem: {
    itemNo: 'CP48CXN#1087',
    stockQty: 2,
    countryCode: 'KZ',
    className: 'BOOM PUMP',
  },
};

export const inventoryControllerFixtures = {
  listPath: '/api/monitoring/cp/inventory?from=2026-01-01&to=2026-01-21',
  missingFromPath: '/api/monitoring/cp/inventory?to=2026-01-21',
  method: 'GET',
  okStatusCode: 200,
  badRequestStatusCode: 400,
  badRequestCode: 'BAD_REQUEST',
  badRequestError: {
    code: 'BAD_REQUEST',
  },
  missingFromKey: 'from',
  listResponse: createInventoryListResponse(),
  listMeta: {
    path: '/api/monitoring/cp/inventory?from=2026-01-01&to=2026-01-21',
    method: 'GET',
    statusCode: 200,
  },
  missingFromMeta: {
    path: '/api/monitoring/cp/inventory?to=2026-01-21',
    method: 'GET',
    statusCode: 400,
  },
};
