@bytebrand/export-cars 1.26.31 → 1.26.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/configs/autouncle.config.d.ts +14 -0
  2. package/dist/configs/autouncle.config.js +36 -3
  3. package/dist/configs/autouncle.config.js.map +1 -1
  4. package/dist/configs/meinstadt.config.d.ts +15 -0
  5. package/dist/configs/meinstadt.config.js +42 -3
  6. package/dist/configs/meinstadt.config.js.map +1 -1
  7. package/dist/constants/autouncle.contants.d.ts +1 -3
  8. package/dist/constants/autouncle.contants.js +2 -4
  9. package/dist/constants/autouncle.contants.js.map +1 -1
  10. package/dist/exporters/autouncle.exporter.d.ts +3 -2
  11. package/dist/exporters/autouncle.exporter.js +45 -27
  12. package/dist/exporters/autouncle.exporter.js.map +1 -1
  13. package/dist/exporters/meinstadt.exporter.d.ts +3 -2
  14. package/dist/exporters/meinstadt.exporter.js +40 -23
  15. package/dist/exporters/meinstadt.exporter.js.map +1 -1
  16. package/dist/formats/autouncle-json.builder.js +1 -4
  17. package/dist/formats/autouncle-json.builder.js.map +1 -1
  18. package/dist/interfaces/export-item.interface.d.ts +8 -12
  19. package/dist/interfaces/openai-ads.interface.d.ts +2 -1
  20. package/dist/interfaces/openai-ads.interface.js +1 -0
  21. package/dist/interfaces/openai-ads.interface.js.map +1 -1
  22. package/dist/interfaces/params.interface.d.ts +6 -0
  23. package/dist/services/autouncle-feed-run.d.ts +66 -0
  24. package/dist/services/autouncle-feed-run.js +135 -0
  25. package/dist/services/autouncle-feed-run.js.map +1 -0
  26. package/dist/services/meinstadt-feed-run.d.ts +81 -0
  27. package/dist/services/meinstadt-feed-run.js +166 -0
  28. package/dist/services/meinstadt-feed-run.js.map +1 -0
  29. package/dist/services/openai-ads-feed-run.d.ts +1 -0
  30. package/dist/services/openai-ads-feed-run.js +4 -0
  31. package/dist/services/openai-ads-feed-run.js.map +1 -1
  32. package/dist/transformers/autouncle.transformer.d.ts +38 -22
  33. package/dist/transformers/autouncle.transformer.js +156 -144
  34. package/dist/transformers/autouncle.transformer.js.map +1 -1
  35. package/dist/transformers/meinstadt.transformer.d.ts +17 -13
  36. package/dist/transformers/meinstadt.transformer.js +88 -61
  37. package/dist/transformers/meinstadt.transformer.js.map +1 -1
  38. package/dist/transformers/openai-ads-finance.d.ts +2 -0
  39. package/dist/transformers/openai-ads-finance.js +39 -0
  40. package/dist/transformers/openai-ads-finance.js.map +1 -0
  41. package/dist/transformers/openai-ads.transformer.d.ts +9 -1
  42. package/dist/transformers/openai-ads.transformer.js +25 -5
  43. package/dist/transformers/openai-ads.transformer.js.map +1 -1
  44. package/dist/tsconfig.build.tsbuildinfo +1 -1
  45. package/docs/autouncle/AUDIT.md +97 -0
  46. package/docs/autouncle/PARTNER-QUESTIONS.md +53 -0
  47. package/docs/autouncle/RUNBOOK.md +64 -0
  48. package/docs/meinestadt/AUDIT.md +146 -0
  49. package/docs/meinestadt/PARTNER-QUESTIONS.md +54 -0
  50. package/docs/meinestadt/RUNBOOK.md +64 -0
  51. package/docs/openai-ads/AUDIT.md +2 -1
  52. package/docs/openai-ads/RUNBOOK.md +26 -2
  53. package/package.json +3 -2
  54. package/src/configs/autouncle.config.ts +51 -3
  55. package/src/configs/meinstadt.config.ts +57 -2
  56. package/src/constants/autouncle.contants.ts +2 -3
  57. package/src/exporters/autouncle.exporter.ts +59 -37
  58. package/src/exporters/meinstadt.exporter.ts +53 -32
  59. package/src/formats/autouncle-json.builder.ts +2 -4
  60. package/src/interfaces/export-item.interface.ts +15 -12
  61. package/src/interfaces/openai-ads.interface.ts +2 -0
  62. package/src/interfaces/params.interface.ts +10 -0
  63. package/src/services/autouncle-feed-run.ts +197 -0
  64. package/src/services/meinstadt-feed-run.ts +240 -0
  65. package/src/services/openai-ads-feed-run.ts +6 -0
  66. package/src/transformers/autouncle.transformer.ts +217 -175
  67. package/src/transformers/meinstadt.transformer.ts +114 -68
  68. package/src/transformers/openai-ads-finance.ts +60 -0
  69. package/src/transformers/openai-ads.transformer.ts +32 -6
  70. package/test/autouncle-feed-run.test.ts +256 -0
  71. package/test/autouncle-mapping.test.ts +225 -0
  72. package/test/fixtures/meinstadt.fixture.ts +87 -0
  73. package/test/fixtures/openai-ads-finance-titles.json +325 -0
  74. package/test/meinstadt-feed-run.test.ts +288 -0
  75. package/test/meinstadt-mapping.test.ts +215 -0
  76. package/test/openai-ads-finance.test.ts +109 -0
@@ -9,150 +9,189 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AutouncleTransformer = void 0;
12
+ exports.AutouncleTransformer = exports.mapAutouncleItem = exports.getAutouncleExclusion = exports.getAutounclePrice = exports.getAutouncleStatus = exports.getAutouncleYear = exports.toAutouncleImages = exports.AutouncleExclusion = void 0;
13
13
  const schema_tools_1 = require("@bytebrand/schema-tools");
14
14
  const i18n_dictionaries_1 = require("@bytebrand/i18n-dictionaries");
15
15
  const lodash_1 = require("lodash");
16
16
  const moment = require("moment");
17
17
  const car_basic_data_scope_1 = require("@bytebrand/car-basic-data-scope");
18
- const services_1 = require("../services");
19
18
  const common_1 = require("@nestjs/common");
20
19
  const autouncle_contants_1 = require("../constants/autouncle.contants");
21
- let AutouncleTransformer = class AutouncleTransformer {
22
- configService;
23
- imageService;
24
- translator;
25
- postalCodesService;
26
- constructor(configService, imageService) {
27
- this.configService = configService;
28
- this.imageService = imageService;
29
- const dict = { ...i18n_dictionaries_1.de, ...i18n_dictionaries_1.deVehicleProps, ...i18n_dictionaries_1.deVehicleDetailsPage };
30
- this.translator = new schema_tools_1.TranslatorExtended(dict);
31
- this.postalCodesService = car_basic_data_scope_1.DePostalCodesService.getInstance();
20
+ const meinstadt_transformer_1 = require("./meinstadt.transformer");
21
+ var AutouncleExclusion;
22
+ (function (AutouncleExclusion) {
23
+ AutouncleExclusion["duplicateId"] = "duplicate_id";
24
+ AutouncleExclusion["filtered"] = "filtered";
25
+ AutouncleExclusion["noId"] = "no_id";
26
+ AutouncleExclusion["noDealer"] = "no_dealer";
27
+ AutouncleExclusion["notAvailable"] = "reserved_or_sold";
28
+ AutouncleExclusion["noPrice"] = "no_valid_price";
29
+ AutouncleExclusion["noImage"] = "no_valid_image";
30
+ })(AutouncleExclusion || (exports.AutouncleExclusion = AutouncleExclusion = {}));
31
+ const NOT_AVAILABLE = ['selector_offerAvailability_reserved', 'selector_offerAvailability_sold'];
32
+ const toAutouncleImages = (selection, maxImages = 0) => {
33
+ if (!selection?.fields) {
34
+ return [];
35
+ }
36
+ const urls = [selection.fields.image_url, ...selection.fields.additional_image_urls];
37
+ return maxImages > 0 ? urls.slice(0, maxImages) : urls;
38
+ };
39
+ exports.toAutouncleImages = toAutouncleImages;
40
+ const getAutouncleYear = (firstRegistration, now = new Date()) => {
41
+ const seconds = (0, meinstadt_transformer_1.toUnixSeconds)(firstRegistration);
42
+ if (seconds === null) {
43
+ return '';
32
44
  }
33
- async transform({ car, images, owner, }) {
34
- const autodeId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', ''));
35
- const address = await this.getAddress(car, owner);
36
- const image_urls = await this.imageService.getImages(car, images, this.configService.config.imageType, false);
37
- const transformed_images = image_urls.map(url => {
38
- return { url };
39
- });
40
- return {
41
- back_link: `https://www.${this.configService.config.domain}/search/vehicle/${autodeId}?source=classifieds&medium=cpc&campaign=autouncle`,
45
+ const year = (0, lodash_1.toSafeInteger)(moment(seconds * 1000).format('YYYY'));
46
+ return year >= 1900 && year <= now.getFullYear() + 1 ? (0, lodash_1.toString)(year) : '';
47
+ };
48
+ exports.getAutouncleYear = getAutouncleYear;
49
+ const getAutouncleStatus = (firstRegistration) => (0, meinstadt_transformer_1.toUnixSeconds)(firstRegistration) === null ? 'Neuwagen' : 'Gebrauchtwagen';
50
+ exports.getAutouncleStatus = getAutouncleStatus;
51
+ const getAutounclePrice = (value) => {
52
+ if (value === null || value === undefined || value === '' || typeof value === 'boolean') {
53
+ return null;
54
+ }
55
+ const amount = (0, lodash_1.toNumber)(value);
56
+ return Number.isFinite(amount) && amount > 0 ? `EUR ${value}` : null;
57
+ };
58
+ exports.getAutounclePrice = getAutounclePrice;
59
+ const withUnit = (value, unit) => {
60
+ const text = (0, lodash_1.toString)(value).trim();
61
+ return text ? `${text}${unit}` : '';
62
+ };
63
+ const BODY_STYLES = {
64
+ selector_unknown: 'Other',
65
+ selector_category_combi: 'Wagon',
66
+ selector_category_sedan: 'Sedan',
67
+ selector_category_compact: 'Small_car',
68
+ selector_category_coupe: 'Coupe',
69
+ selector_category_convertible: 'Convertible',
70
+ selector_category_suv: 'Suv',
71
+ selector_category_van: 'Van',
72
+ selector_category_transporter: 'Truck',
73
+ selector_category_minibus: 'Minivan',
74
+ };
75
+ const FUELS = {
76
+ selector_fuel_petrol: 'Gasoline',
77
+ selector_fuel_diesel: 'Diesel',
78
+ selector_fuel_electrical: 'Electric',
79
+ selector_fuel_hybridElectricalPetrol: 'Hybrid',
80
+ selector_fuel_hybridElectricalDiesel: 'Hybrid',
81
+ selector_fuel_carGas: 'CarGas',
82
+ selector_fuel_naturalGas: 'NaturalGas',
83
+ selector_fuel_ethanol: 'Ethanol',
84
+ selector_fuel_hydrogen: 'Hydrogen',
85
+ selector_unknown: 'Other',
86
+ };
87
+ const TRANSMISSIONS = {
88
+ selector_gearbox_manualShift: 'manual',
89
+ selector_gearbox_semiAutomatic: 'automatic',
90
+ selector_gearbox_automatic: 'automatic',
91
+ selector_unknown: 'other',
92
+ };
93
+ const fromSelector = (map, selector) => (typeof selector === 'string' && map[selector]) || map.selector_unknown;
94
+ const getMileage = (car) => {
95
+ const mileage = (0, lodash_1.get)(car, 'mainData.mileage', 0);
96
+ return mileage <= autouncle_contants_1.MIN_MILEAGES ? autouncle_contants_1.MIN_MILEAGES + 1 : mileage;
97
+ };
98
+ const getExteriorColor = (car, translate) => {
99
+ let colorSelection = (0, lodash_1.get)(car, 'exterior.exteriorColor', 'other');
100
+ if (!colorSelection || colorSelection === 'selector_unknown') {
101
+ colorSelection = 'other';
102
+ }
103
+ return translate(colorSelection);
104
+ };
105
+ const getAutouncleExclusion = (car) => {
106
+ if (!(0, lodash_1.toString)((0, lodash_1.get)(car, '_id', '')).trim()) {
107
+ return AutouncleExclusion.noId;
108
+ }
109
+ if (!(0, lodash_1.toString)((0, lodash_1.get)(car, 'metaData.ownerId', '')).trim()) {
110
+ return AutouncleExclusion.noDealer;
111
+ }
112
+ if (NOT_AVAILABLE.includes((0, lodash_1.toString)((0, lodash_1.get)(car, 'offer.offerAvailability', '')))) {
113
+ return AutouncleExclusion.notAvailable;
114
+ }
115
+ if (!(0, exports.getAutounclePrice)((0, lodash_1.get)(car, 'price.currentSalesPrice', null))) {
116
+ return AutouncleExclusion.noPrice;
117
+ }
118
+ return null;
119
+ };
120
+ exports.getAutouncleExclusion = getAutouncleExclusion;
121
+ const mapAutouncleItem = (car, ctx) => {
122
+ const excluded = (0, exports.getAutouncleExclusion)(car);
123
+ if (excluded) {
124
+ return { ok: false, reason: excluded };
125
+ }
126
+ if (!ctx.images.length) {
127
+ return { ok: false, reason: AutouncleExclusion.noImage };
128
+ }
129
+ const autodeId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', '')).trim();
130
+ const sellerId = (0, lodash_1.toString)((0, lodash_1.get)(car, 'metaData.ownerId', '')).trim();
131
+ const price = (0, exports.getAutounclePrice)((0, lodash_1.get)(car, 'price.currentSalesPrice', null));
132
+ const firstRegistration = (0, lodash_1.get)(car, 'mainData.firstRegistration', null);
133
+ return {
134
+ ok: true,
135
+ item: {
136
+ back_link: `https://www.${ctx.domain}/search/vehicle/${autodeId}?source=classifieds&medium=cpc&campaign=autouncle`,
42
137
  make: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.make', '')),
43
138
  model_name: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.model', '')),
44
139
  model_variant: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.subModel', '')),
45
- fuel: this.mapFuel(car),
46
- body: this.mapBodyStyle(car),
140
+ fuel: fromSelector(FUELS, (0, lodash_1.get)(car, 'consumption.fuel', null)),
141
+ body: fromSelector(BODY_STYLES, (0, lodash_1.get)(car, 'mainData.category', null)),
47
142
  doors: (0, lodash_1.toString)((0, lodash_1.get)(car, 'mainData.doors', '')),
48
- price: this.getPrice(car),
49
- year: (0, lodash_1.toString)(this.getYear(car)),
50
- status: (0, lodash_1.toString)(this.getStatus(car)),
51
- mileage: (0, lodash_1.toString)(this.getMileage(car)) + 'km',
52
- leasing: (0, lodash_1.toString)((0, lodash_1.get)(car, '', '')),
53
- color: this.getExteriorColor(car),
54
- engine_size: (0, lodash_1.toString)((0, lodash_1.get)(car, 'engineData.cubicCapacity', '')) + 'ccm',
143
+ price,
144
+ year: (0, exports.getAutouncleYear)(firstRegistration),
145
+ status: (0, exports.getAutouncleStatus)(firstRegistration),
146
+ mileage: (0, lodash_1.toString)(getMileage(car)) + 'km',
147
+ leasing: '',
148
+ color: getExteriorColor(car, ctx.translate),
149
+ engine_size: withUnit((0, lodash_1.get)(car, 'engineData.cubicCapacity', ''), 'ccm'),
55
150
  power: (0, lodash_1.toString)((0, lodash_1.get)(car, 'engineData.powerKW', '')),
56
- gear_type: this.mapTransmission(car),
57
- has_4wd: this.has4WD(),
151
+ gear_type: fromSelector(TRANSMISSIONS, (0, lodash_1.get)(car, 'driveSuspension.gearbox', null)),
152
+ has_4wd: '',
58
153
  seller_type: 'Dealer',
59
- seller_region: (0, lodash_1.toString)((0, lodash_1.get)(address, 'region', '')),
60
- seller_city: (0, lodash_1.toString)((0, lodash_1.get)(address, 'city', '')),
61
- seller_street_address: (0, lodash_1.toString)((0, lodash_1.get)(address, 'addr1', '')),
62
- seller_postcode: (0, lodash_1.toString)((0, lodash_1.get)(address, 'postal_code', '')),
154
+ seller_region: ctx.address.region,
155
+ seller_city: ctx.address.city,
156
+ seller_street_address: ctx.address.addr1,
157
+ seller_postcode: ctx.address.postal_code,
63
158
  seller_name: 'auto.de',
64
- seller_id: (0, lodash_1.toString)((0, lodash_1.get)(car, 'metaData.ownerId', '')),
159
+ seller_id: sellerId,
65
160
  description: (0, lodash_1.toString)((0, lodash_1.get)(car, 'offer.offerDescription', '')),
66
- images: transformed_images,
161
+ images: ctx.images.map(url => ({ url })),
67
162
  fuel_economy: (0, lodash_1.toString)((0, lodash_1.get)(car, 'consumption.consumptionCombined', '')),
68
163
  co2_emission: (0, lodash_1.toString)((0, lodash_1.get)(car, 'environmentEmissions.co2', '')),
69
164
  co2_effiency_class: (0, lodash_1.toString)((0, lodash_1.get)(car, 'environmentEmissions.wltpEnergyEfficiencyClass', '')),
70
165
  euro_emission_class: (0, lodash_1.toString)((0, lodash_1.get)(car, 'environmentEmissions.emissionClass', '')),
71
166
  enviromental_sticker: (0, lodash_1.toString)((0, lodash_1.get)(car, 'environmentEmissions.emissionSticker', '')),
72
- };
73
- }
74
- getStatus(car) {
75
- if ((0, lodash_1.get)(car, 'mainData.firstRegistration', 0) === 0) {
76
- return 'Neuwagen';
77
- }
78
- return 'Gebrauchtwagen';
79
- }
80
- getYear(car) {
81
- const firstRegistration = (0, lodash_1.get)(car, 'mainData.firstRegistration', 0);
82
- if (firstRegistration !== 0) {
83
- return (0, lodash_1.toSafeInteger)(moment(firstRegistration * 1000).format('YYYY'));
84
- }
85
- return '';
86
- }
87
- mapBodyStyle(car) {
88
- const available = {
89
- selector_unknown: 'Other',
90
- selector_category_combi: 'Wagon',
91
- selector_category_sedan: 'Sedan',
92
- selector_category_compact: 'Small_car',
93
- selector_category_coupe: 'Coupe',
94
- selector_category_convertible: 'Convertible',
95
- selector_category_suv: 'Suv',
96
- selector_category_van: 'Van',
97
- selector_category_transporter: 'Truck',
98
- selector_category_minibus: 'Minivan',
99
- };
100
- const category = (0, lodash_1.get)(car, 'mainData.category', 'selector_unknown');
101
- return (0, lodash_1.get)(available, category);
102
- }
103
- mapFuel(car) {
104
- const available = {
105
- selector_fuel_petrol: 'Gasoline',
106
- selector_fuel_diesel: 'Diesel',
107
- selector_fuel_electrical: 'Electric',
108
- selector_fuel_hybridElectricalPetrol: 'Hybrid',
109
- selector_fuel_hybridElectricalDiesel: 'Hybrid',
110
- selector_fuel_carGas: 'CarGas',
111
- selector_fuel_naturalGas: 'NaturalGas',
112
- selector_fuel_ethanol: 'Ethanol',
113
- selector_fuel_hydrogen: 'Hydrogen',
114
- selector_unknown: 'Other',
115
- };
116
- const fuel = (0, lodash_1.get)(car, 'consumption.fuel', 'selector_unknown');
117
- return (0, lodash_1.get)(available, fuel);
118
- }
119
- mapTransmission(car) {
120
- const available = {
121
- selector_gearbox_manualShift: 'manual',
122
- selector_gearbox_semiAutomatic: 'automatic',
123
- selector_gearbox_automatic: 'automatic',
124
- selector_unknown: 'other',
125
- };
126
- const transmission = (0, lodash_1.get)(car, 'driveSuspension.gearbox', 'selector_unknown');
127
- return (0, lodash_1.get)(available, transmission);
167
+ },
168
+ };
169
+ };
170
+ exports.mapAutouncleItem = mapAutouncleItem;
171
+ let AutouncleTransformer = class AutouncleTransformer {
172
+ translator;
173
+ postalCodesService;
174
+ constructor() {
175
+ const dict = { ...i18n_dictionaries_1.de, ...i18n_dictionaries_1.deVehicleProps, ...i18n_dictionaries_1.deVehicleDetailsPage };
176
+ this.translator = new schema_tools_1.TranslatorExtended(dict);
177
+ this.postalCodesService = car_basic_data_scope_1.DePostalCodesService.getInstance();
128
178
  }
129
- getPrice(car) {
130
- const price = (0, lodash_1.get)(car, 'price.currentSalesPrice', '');
131
- return `EUR ${price}`;
179
+ translate(key) {
180
+ return this.translator.translateVal(key);
132
181
  }
133
- async getAddress(car, owner) {
182
+ async getAddress(owner) {
134
183
  let addressPath = 'businessAddress';
135
184
  if (this.isEmptyAddress((0, lodash_1.get)(owner, addressPath, {}))) {
136
185
  addressPath = 'mainAddress';
137
186
  }
138
- let city = (0, lodash_1.get)(owner, `${addressPath}.city`, '');
139
- let zip = (0, lodash_1.get)(owner, `${addressPath}.zip`, '');
140
- let addr1 = (0, lodash_1.get)(owner, `${addressPath}.street`, '');
141
- let locationEntity = await this.getLocationByInfo({ city, zip: (0, lodash_1.toSafeInteger)(zip) });
142
- if (this.isEmptyLocation(locationEntity)) {
143
- addr1 = autouncle_contants_1.DEFAULT_ADDR1;
144
- city = autouncle_contants_1.DEFAULT_CITY;
145
- zip = autouncle_contants_1.DEFAULT_ZIP;
146
- locationEntity = await this.getLocationByInfo({ city, zip: (0, lodash_1.toSafeInteger)(zip) });
147
- }
148
- const coords = await this.getCoords(car, locationEntity);
149
- const country = (0, lodash_1.get)(owner, `${addressPath}.country.name`, '');
187
+ const city = (0, lodash_1.toString)((0, lodash_1.get)(owner, `${addressPath}.city`, ''));
188
+ const zip = (0, lodash_1.toString)((0, lodash_1.get)(owner, `${addressPath}.zip`, ''));
189
+ const addr1 = (0, lodash_1.toString)((0, lodash_1.get)(owner, `${addressPath}.street`, ''));
190
+ const location = await this.getLocationByInfo({ city, zip: (0, lodash_1.toSafeInteger)(zip) });
150
191
  return {
151
- ...coords,
152
192
  city,
153
193
  addr1,
154
- region: (0, lodash_1.get)(locationEntity, 'Place Name', 'Deutschland'),
155
- country: country || 'Deutschland',
194
+ region: this.isEmptyLocation(location) ? autouncle_contants_1.DEFAULT_REGION : (0, lodash_1.toString)(location['Place Name']),
156
195
  postal_code: zip,
157
196
  };
158
197
  }
@@ -166,44 +205,17 @@ let AutouncleTransformer = class AutouncleTransformer {
166
205
  return true;
167
206
  return ['city', 'zip', 'country'].every((key) => (0, lodash_1.isEmpty)(address[key]));
168
207
  }
169
- async getCoords(car, locationEntry) {
170
- const data = {
171
- latitude: (0, lodash_1.get)(car, 'location.latitude'),
172
- longitude: (0, lodash_1.get)(car, 'location.longitude'),
173
- };
174
- if (data.latitude && data.longitude) {
175
- return data;
176
- }
177
- return {
178
- longitude: (0, lodash_1.get)(locationEntry, 'Longitude'),
179
- latitude: (0, lodash_1.get)(locationEntry, 'Latitude'),
180
- };
181
- }
182
208
  async getLocationByInfo(info) {
183
- let entry = await this.postalCodesService.getLocationByPostalCode(info.zip);
184
- if (!entry) {
209
+ let entry = info.zip ? await this.postalCodesService.getLocationByPostalCode(info.zip) : undefined;
210
+ if (!entry && info.city) {
185
211
  entry = await this.postalCodesService.getLocationByCity(info.city);
186
212
  }
187
213
  return entry;
188
214
  }
189
- getExteriorColor(car) {
190
- let colorSelection = (0, lodash_1.get)(car, 'exterior.exteriorColor', 'other');
191
- if (!colorSelection || colorSelection === 'selector_unknown') {
192
- colorSelection = 'other';
193
- }
194
- return this.translator.translateVal(colorSelection);
195
- }
196
- getMileage(car) {
197
- const mileage = (0, lodash_1.get)(car, 'mainData.mileage', 0);
198
- return mileage <= autouncle_contants_1.MIN_MILEAGES ? autouncle_contants_1.MIN_MILEAGES + 1 : mileage;
199
- }
200
- has4WD() {
201
- return '';
202
- }
203
215
  };
204
216
  exports.AutouncleTransformer = AutouncleTransformer;
205
217
  exports.AutouncleTransformer = AutouncleTransformer = __decorate([
206
218
  (0, common_1.Injectable)(),
207
- __metadata("design:paramtypes", [services_1.ConfigService, services_1.ImagesService])
219
+ __metadata("design:paramtypes", [])
208
220
  ], AutouncleTransformer);
209
221
  //# sourceMappingURL=autouncle.transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autouncle.transformer.js","sourceRoot":"","sources":["../../src/transformers/autouncle.transformer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAA6D;AAC7D,oEAAwF;AACxF,mCAA+D;AAC/D,iCAAiC;AAEjC,0EAAuE;AAGvE,0CAA2D;AAC3D,2CAA4C;AAC5C,wEAAyG;AAKlG,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAIX;IAAsC;IAHlD,UAAU,CAAqB;IAC/B,kBAAkB,CAAuB;IAEjD,YAAoB,aAA4B,EAAU,YAA2B;QAAjE,kBAAa,GAAb,aAAa,CAAe;QAAU,iBAAY,GAAZ,YAAY,CAAe;QACnF,MAAM,IAAI,GAAG,EAAE,GAAG,sBAAE,EAAE,GAAG,kCAAc,EAAE,GAAG,wCAAoB,EAAE,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,IAAI,iCAAkB,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,2CAAoB,CAAC,WAAW,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EACd,GAAG,EACH,MAAM,EACN,KAAK,GAMN;QACC,MAAM,QAAQ,GAAG,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9G,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC9C,OAAO,EAAE,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,eAAe,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,mBAAmB,QAAQ,mDAAmD;YACxI,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;YAC7C,UAAU,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACpD,aAAa,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAC5B,KAAK,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzB,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACrC,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;YAC9C,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YACjC,WAAW,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK;YACvE,KAAK,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACnD,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;YACtB,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnD,WAAW,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,qBAAqB,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC1D,eAAe,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;YAC1D,WAAW,EAAE,SAAS;YACtB,SAAS,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACrD,WAAW,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAC;YACvE,YAAY,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;YAEhE,kBAAkB,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,gDAAgD,EAAE,EAAE,CAAC,CAAC;YAC5F,mBAAmB,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,oCAAoC,EAAE,EAAE,CAAC,CAAC;YACjF,oBAAoB,EAAE,IAAA,iBAAQ,EAAC,IAAA,YAAG,EAAC,GAAG,EAAE,sCAAsC,EAAE,EAAE,CAAC,CAAC;SACrF,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAAoB;QACpC,IAAI,IAAA,YAAG,EAAC,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;YACnD,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,OAAO,CAAC,GAAoB;QAClC,MAAM,iBAAiB,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAW,CAAC;QAC9E,IAAI,iBAAiB,KAAK,CAAC,EAAE;YAC3B,OAAO,IAAA,sBAAa,EAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACvE;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,YAAY,CAAC,GAAoB;QACvC,MAAM,SAAS,GAAG;YAChB,gBAAgB,EAAE,OAAO;YACzB,uBAAuB,EAAE,OAAO;YAChC,uBAAuB,EAAE,OAAO;YAChC,yBAAyB,EAAE,WAAW;YACtC,uBAAuB,EAAE,OAAO;YAChC,6BAA6B,EAAE,aAAa;YAC5C,qBAAqB,EAAE,KAAK;YAC5B,qBAAqB,EAAE,KAAK;YAC5B,6BAA6B,EAAE,OAAO;YACtC,yBAAyB,EAAE,SAAS;SACrC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QACnE,OAAO,IAAA,YAAG,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,OAAO,CAAC,GAAoB;QAClC,MAAM,SAAS,GAAG;YAChB,oBAAoB,EAAE,UAAU;YAChC,oBAAoB,EAAE,QAAQ;YAC9B,wBAAwB,EAAE,UAAU;YACpC,oCAAoC,EAAE,QAAQ;YAC9C,oCAAoC,EAAE,QAAQ;YAC9C,oBAAoB,EAAE,QAAQ;YAC9B,wBAAwB,EAAE,YAAY;YACtC,qBAAqB,EAAE,SAAS;YAChC,sBAAsB,EAAE,UAAU;YAClC,gBAAgB,EAAE,OAAO;SAC1B,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAC9D,OAAO,IAAA,YAAG,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,eAAe,CAAC,GAAoB;QAC1C,MAAM,SAAS,GAAG;YAChB,4BAA4B,EAAE,QAAQ;YACtC,8BAA8B,EAAE,WAAW;YAC3C,0BAA0B,EAAE,WAAW;YACvC,gBAAgB,EAAE,OAAO;SAC1B,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;QAC7E,OAAO,IAAA,YAAG,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAEO,QAAQ,CAAC,GAAoB;QACnC,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,OAAO,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,GAAoB,EACpB,KAAc;QAUd,IAAI,WAAW,GAAG,iBAAiB,CAAC;QACpC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAA,YAAG,EAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE;YACpD,WAAW,GAAG,aAAa,CAAC;SAC7B;QACD,IAAI,IAAI,GAAW,IAAA,YAAG,EAAC,KAAK,EAAE,GAAG,WAAW,OAAO,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,GAAG,GAAW,IAAA,YAAG,EAAC,KAAK,EAAE,GAAG,WAAW,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,GAAG,WAAW,SAAS,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAA,sBAAa,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE;YACxC,KAAK,GAAG,kCAAa,CAAC;YACtB,IAAI,GAAG,iCAAY,CAAC;YACpB,GAAG,GAAG,gCAAW,CAAC;YAClB,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAA,sBAAa,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClF;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACzD,MAAM,OAAO,GAAW,IAAA,YAAG,EAAC,KAAK,EAAE,GAAG,WAAW,eAAe,EAAE,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,GAAG,MAAM;YACT,IAAI;YACJ,KAAK;YACL,MAAM,EAAE,IAAA,YAAG,EAAC,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC;YACxD,OAAO,EAAE,OAAO,IAAI,aAAa;YACjC,WAAW,EAAE,GAAG;SACjB,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,QAAqC;QAC3D,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,GAAoB,EACpB,aAA0C;QAE1C,MAAM,IAAI,GAAyD;YACjE,QAAQ,EAAE,IAAA,YAAG,EAAC,GAAG,EAAE,mBAAmB,CAAC;YACvC,SAAS,EAAE,IAAA,YAAG,EAAC,GAAG,EAAE,oBAAoB,CAAC;SAC1C,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,SAAS,EAAE,IAAA,YAAG,EAAC,aAAa,EAAE,WAAW,CAAC;YAC1C,QAAQ,EAAE,IAAA,YAAG,EAAC,aAAa,EAAE,UAAU,CAAC;SACzC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAmC;QACjE,IAAI,KAAK,GAAgC,MAAM,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzG,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,gBAAgB,CAAC,GAAoB;QAC3C,IAAI,cAAc,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,kBAAkB,EAAE;YAC5D,cAAc,GAAG,OAAO,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;IAEO,UAAU,CAAC,GAAoB;QACrC,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,OAAO,IAAI,iCAAY,CAAC,CAAC,CAAC,iCAAY,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,CAAC;IAEO,MAAM;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAA;AA7NY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAKwB,wBAAa,EAAwB,wBAAa;GAJ1E,oBAAoB,CA6NhC"}
1
+ {"version":3,"file":"autouncle.transformer.js","sourceRoot":"","sources":["../../src/transformers/autouncle.transformer.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,22 @@
1
- import { ImboImageResponseInterface } from '@bytebrand/chunkable';
2
1
  import { DataSchemes } from '@bytebrand/car-schema';
3
- import { ConfigService, ImagesService, UserService } from '../services';
2
+ import { UserService } from '../services';
4
3
  import { MeinstadtJsonItem } from '../interfaces';
4
+ import { OpenAiImageSelection } from './openai-image-fields';
5
+ export declare const toMeinstadtImages: (selection: OpenAiImageSelection, maxImages?: number) => string[];
6
+ export interface MeinstadtMappingContext {
7
+ domain: string;
8
+ cpc: string | null;
9
+ equipment: string;
10
+ images: string[];
11
+ translate?: (key: string) => string | undefined;
12
+ }
13
+ export declare const toAccidentFree: (accidentDamaged: unknown) => boolean | null;
14
+ export declare const toUnixSeconds: (value: unknown) => number | null;
15
+ export declare const translateSelector: (val: string | null, translate?: (key: string) => string | undefined) => string | null;
16
+ export declare const getUsageState: (car: DataSchemes.Car) => string;
17
+ export declare const mapMeinstadtItem: (car: DataSchemes.Car, ctx: MeinstadtMappingContext) => MeinstadtJsonItem;
5
18
  export declare class MeinstadtTransformer {
6
- private configService;
7
- private readonly imageService;
8
19
  private userService;
9
- constructor(configService: ConfigService, imageService: ImagesService, userService: UserService);
10
- transform({ car, images, }: {
11
- car: DataSchemes.Car;
12
- images: ImboImageResponseInterface[];
13
- }): Promise<Partial<MeinstadtJsonItem>>;
14
- private getTitle;
15
- private translate;
16
- private getUsageState;
17
- private getDescription;
20
+ constructor(userService: UserService);
21
+ getDescription(car: DataSchemes.Car): Promise<string>;
18
22
  }
@@ -9,75 +9,104 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MeinstadtTransformer = void 0;
12
+ exports.MeinstadtTransformer = exports.mapMeinstadtItem = exports.getUsageState = exports.translateSelector = exports.toUnixSeconds = exports.toAccidentFree = exports.toMeinstadtImages = void 0;
13
13
  const lodash_1 = require("lodash");
14
14
  const common_1 = require("@nestjs/common");
15
15
  const car_description_1 = require("@bytebrand/car-description");
16
16
  const i18n_dictionaries_1 = require("@bytebrand/i18n-dictionaries");
17
17
  const services_1 = require("../services");
18
- let MeinstadtTransformer = class MeinstadtTransformer {
19
- configService;
20
- imageService;
21
- userService;
22
- constructor(configService, imageService, userService) {
23
- this.configService = configService;
24
- this.imageService = imageService;
25
- this.userService = userService;
18
+ const toMeinstadtImages = (selection, maxImages = 0) => {
19
+ if (!selection?.fields) {
20
+ return [];
26
21
  }
27
- async transform({ car, images, }) {
28
- const carImages = await this.imageService.getImages(car, images, this.configService.config.imageType, false);
29
- const carId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', null));
30
- return {
31
- id: (0, lodash_1.get)(car, 'metaData.vehicleId', null),
32
- make: (0, lodash_1.get)(car, 'mainData.make', null),
33
- model: (0, lodash_1.get)(car, 'mainData.model', null),
34
- cpc: (0, lodash_1.get)(this.configService.config, 'cpc', '0.08'),
35
- listingUrl: `https://www.${this.configService.config.domain}/search/vehicle/${carId}?source=classifieds&medium=listing&campaign=meinestadt`,
36
- title: this.getTitle(car),
37
- accidentFree: (0, lodash_1.get)(car, 'mainData.accidentDamaged', null),
38
- mileage: (0, lodash_1.get)(car, 'mainData.mileage', null),
39
- initialRegistration: (0, lodash_1.get)(car, 'mainData.firstRegistration', null),
40
- offerCreationDate: (0, lodash_1.get)(car, 'metaData.creationDate', null),
41
- numberOfDoors: (0, lodash_1.get)(car, 'mainData.doors', null),
42
- numberOfSeats: (0, lodash_1.get)(car, 'mainData.seats', null),
43
- numberOfPreviousOwners: (0, lodash_1.get)(car, 'mainData.numberOfPreviousOwners', null),
44
- price: (0, lodash_1.get)(car, 'price.currentSalesPrice', null),
45
- power: (0, lodash_1.get)(car, 'engineData.powerPS', null),
46
- co2Emissions: (0, lodash_1.get)(car, 'environmentEmissions.co2', null),
47
- fuelConsumptionCombined: (0, lodash_1.get)(car, 'consumption.consumptionCombined', null),
48
- equipment: await this.getDescription(car),
49
- color: this.translate((0, lodash_1.get)(car, 'exterior.exteriorColor', null)),
50
- bodyType: this.translate((0, lodash_1.get)(car, 'mainData.category', null)),
51
- emissionClass: this.translate((0, lodash_1.get)(car, 'environmentEmissions.emissionClass', null)),
52
- emissionSticker: this.translate((0, lodash_1.get)(car, 'environmentEmissions.emissionSticker', null)),
53
- fuelType: this.translate((0, lodash_1.get)(car, 'consumption.fuel', null)),
54
- 'transmissionType/transmission': this.translate((0, lodash_1.get)(car, 'driveSuspension.gearbox', null)),
55
- imagesCount: carImages.length,
56
- 'customerType/sellerType': 'Händler',
57
- usageState: this.translate(this.getUsageState(car)),
58
- images: carImages[0],
59
- };
22
+ const urls = [selection.fields.image_url, ...selection.fields.additional_image_urls];
23
+ return maxImages > 0 ? urls.slice(0, maxImages) : urls;
24
+ };
25
+ exports.toMeinstadtImages = toMeinstadtImages;
26
+ const toAccidentFree = (accidentDamaged) => {
27
+ if (accidentDamaged === false) {
28
+ return true;
60
29
  }
61
- getTitle(car) {
62
- return `${car.mainData.make} ${car.mainData.model} ${car.mainData.subModel}`;
30
+ if (accidentDamaged === true) {
31
+ return false;
63
32
  }
64
- translate(val) {
65
- if (!val)
66
- return null;
67
- if (i18n_dictionaries_1.de[val])
68
- return i18n_dictionaries_1.de[val];
33
+ return null;
34
+ };
35
+ exports.toAccidentFree = toAccidentFree;
36
+ const toUnixSeconds = (value) => {
37
+ let seconds;
38
+ if (typeof value === 'number') {
39
+ seconds = value;
40
+ }
41
+ else if (value instanceof Date) {
42
+ seconds = value.getTime() / 1000;
43
+ }
44
+ else if (typeof value === 'string' && value.trim()) {
45
+ seconds = Date.parse(value) / 1000;
46
+ }
47
+ else {
69
48
  return null;
70
49
  }
71
- getUsageState(car) {
72
- const condition = (0, lodash_1.get)(car, 'mainData.condition', null);
73
- if (!condition || condition === 'selector_unknown') {
74
- const mileage = (0, lodash_1.get)(car, 'mainData.mileage', 0);
75
- if (mileage >= 100) {
76
- return 'selector_condition_used';
77
- }
78
- return 'selector_condition_new';
50
+ return Number.isFinite(seconds) && seconds > 0 ? Math.floor(seconds) : null;
51
+ };
52
+ exports.toUnixSeconds = toUnixSeconds;
53
+ const translateSelector = (val, translate = key => i18n_dictionaries_1.de[key]) => {
54
+ if (!val || val === 'selector_unknown')
55
+ return null;
56
+ return translate(val) || null;
57
+ };
58
+ exports.translateSelector = translateSelector;
59
+ const getUsageState = (car) => {
60
+ const condition = (0, lodash_1.get)(car, 'mainData.condition', null);
61
+ if (!condition || condition === 'selector_unknown') {
62
+ const mileage = (0, lodash_1.get)(car, 'mainData.mileage', 0);
63
+ if (mileage >= 100) {
64
+ return 'selector_condition_used';
79
65
  }
80
- return condition;
66
+ return 'selector_condition_new';
67
+ }
68
+ return condition;
69
+ };
70
+ exports.getUsageState = getUsageState;
71
+ const mapMeinstadtItem = (car, ctx) => {
72
+ const carId = (0, lodash_1.toString)((0, lodash_1.get)(car, '_id', null));
73
+ const translate = (val) => (0, exports.translateSelector)(val, ctx.translate);
74
+ return {
75
+ id: (0, lodash_1.get)(car, 'metaData.vehicleId', null),
76
+ make: (0, lodash_1.get)(car, 'mainData.make', null),
77
+ model: (0, lodash_1.get)(car, 'mainData.model', null),
78
+ cpc: ctx.cpc,
79
+ listingUrl: `https://www.${ctx.domain}/search/vehicle/${carId}?source=classifieds&medium=listing&campaign=meinestadt`,
80
+ title: `${car.mainData.make} ${car.mainData.model} ${car.mainData.subModel}`,
81
+ accidentFree: (0, exports.toAccidentFree)((0, lodash_1.get)(car, 'mainData.accidentDamaged', null)),
82
+ mileage: (0, lodash_1.get)(car, 'mainData.mileage', null),
83
+ initialRegistration: (0, exports.toUnixSeconds)((0, lodash_1.get)(car, 'mainData.firstRegistration', null)),
84
+ offerCreationDate: (0, exports.toUnixSeconds)((0, lodash_1.get)(car, 'metaData.creationDate', null)),
85
+ numberOfDoors: (0, lodash_1.get)(car, 'mainData.doors', null),
86
+ numberOfSeats: (0, lodash_1.get)(car, 'mainData.seats', null),
87
+ numberOfPreviousOwners: (0, lodash_1.get)(car, 'mainData.numberOfPreviousOwners', null),
88
+ price: (0, lodash_1.get)(car, 'price.currentSalesPrice', null),
89
+ power: (0, lodash_1.get)(car, 'engineData.powerPS', null),
90
+ co2Emissions: (0, lodash_1.get)(car, 'environmentEmissions.co2', null),
91
+ fuelConsumptionCombined: (0, lodash_1.get)(car, 'consumption.consumptionCombined', null),
92
+ equipment: ctx.equipment,
93
+ color: translate((0, lodash_1.get)(car, 'exterior.exteriorColor', null)),
94
+ bodyType: translate((0, lodash_1.get)(car, 'mainData.category', null)),
95
+ emissionClass: translate((0, lodash_1.get)(car, 'environmentEmissions.emissionClass', null)),
96
+ emissionSticker: translate((0, lodash_1.get)(car, 'environmentEmissions.emissionSticker', null)),
97
+ fuelType: translate((0, lodash_1.get)(car, 'consumption.fuel', null)),
98
+ 'transmissionType/transmission': translate((0, lodash_1.get)(car, 'driveSuspension.gearbox', null)),
99
+ imagesCount: ctx.images.length,
100
+ 'customerType/sellerType': 'Händler',
101
+ usageState: translate((0, exports.getUsageState)(car)),
102
+ images: [...ctx.images],
103
+ };
104
+ };
105
+ exports.mapMeinstadtItem = mapMeinstadtItem;
106
+ let MeinstadtTransformer = class MeinstadtTransformer {
107
+ userService;
108
+ constructor(userService) {
109
+ this.userService = userService;
81
110
  }
82
111
  async getDescription(car) {
83
112
  const dealerId = (0, lodash_1.get)(car, 'metaData.ownerId');
@@ -89,8 +118,6 @@ let MeinstadtTransformer = class MeinstadtTransformer {
89
118
  exports.MeinstadtTransformer = MeinstadtTransformer;
90
119
  exports.MeinstadtTransformer = MeinstadtTransformer = __decorate([
91
120
  (0, common_1.Injectable)(),
92
- __metadata("design:paramtypes", [services_1.ConfigService,
93
- services_1.ImagesService,
94
- services_1.UserService])
121
+ __metadata("design:paramtypes", [services_1.UserService])
95
122
  ], MeinstadtTransformer);
96
123
  //# sourceMappingURL=meinstadt.transformer.js.map