"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepareWhmcsClientAddressUpdate = exports.transformWhmcsClientAddress = exports.parseWhmcsClientResponse = void 0; exports.transformWhmcsClientResponse = transformWhmcsClientResponse; exports.transformWhmcsClient = transformWhmcsClient; const schema_1 = require("../../schema"); const raw_types_1 = require("./raw.types"); const parseWhmcsClientResponse = (raw) => raw_types_1.whmcsClientResponseSchema.parse(raw); exports.parseWhmcsClientResponse = parseWhmcsClientResponse; function transformWhmcsClientResponse(response) { const parsed = (0, exports.parseWhmcsClientResponse)(response); return transformWhmcsClient(parsed.client); } function transformWhmcsClient(raw) { return schema_1.whmcsClientSchema.parse({ ...raw, address: normalizeAddress(raw), }); } function normalizeAddress(client) { const address = schema_1.addressSchema.parse({ address1: client.address1 ?? null, address2: client.address2 ?? null, city: client.city ?? null, state: client.fullstate ?? client.state ?? null, postcode: client.postcode ?? null, country: client.country ?? null, countryCode: client.countrycode ?? null, phoneNumber: client.phonenumberformatted ?? client.phonenumber ?? null, phoneCountryCode: client.phonecc ?? null, }); const hasValues = Object.values(address).some(v => v !== undefined && v !== null && v !== ""); return hasValues ? address : undefined; } const transformWhmcsClientAddress = (raw) => { const client = raw_types_1.whmcsClientSchema.parse(raw); return normalizeAddress(client); }; exports.transformWhmcsClientAddress = transformWhmcsClientAddress; const prepareWhmcsClientAddressUpdate = (address) => { const update = {}; if (address.address1 !== undefined) update.address1 = address.address1 ?? ""; if (address.address2 !== undefined) update.address2 = address.address2 ?? ""; if (address.city !== undefined) update.city = address.city ?? ""; if (address.state !== undefined) update.state = address.state ?? ""; if (address.postcode !== undefined) update.postcode = address.postcode ?? ""; if (address.country !== undefined) update.country = address.country ?? ""; if (address.countryCode !== undefined) update.countrycode = address.countryCode ?? ""; if (address.phoneNumber !== undefined) update.phonenumber = address.phoneNumber ?? ""; if (address.phoneCountryCode !== undefined) update.phonecc = address.phoneCountryCode ?? ""; return update; }; exports.prepareWhmcsClientAddressUpdate = prepareWhmcsClientAddressUpdate; //# sourceMappingURL=mapper.js.map