"use strict";
// SPDX-License-Identifier: Apache-2.0
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateBondKpiLinkedRateCommandFixture = void 0;
const ContractId_1 = __importDefault(require("../../../src/domain/context/contract/ContractId"));
const config_1 = require("../config");
const DataFixture_1 = require("../shared/DataFixture");
const SecurityFixture_1 = require("../shared/SecurityFixture");
exports.CreateBondKpiLinkedRateCommandFixture = (0, config_1.createFixture)((command) => {
    command.security.fromFixture(SecurityFixture_1.SecurityPropsFixture);
    command.currency.faker((faker) => faker.finance.currencyCode());
    command.nominalValue.faker((faker) => faker.finance.amount({ min: 1, max: 10, dec: 2 }));
    command.nominalValueDecimals.faker((faker) => faker.number.int({ min: 1, max: 5 }));
    command.startingDate.faker((faker) => faker.date.recent().getTime().toString());
    command.maturityDate.faker((faker) => faker.date.future({ years: 2 }).getTime().toString());
    command.factory?.as(() => new ContractId_1.default(DataFixture_1.ContractIdPropFixture.create().value));
    command.resolver?.as(() => new ContractId_1.default(DataFixture_1.ContractIdPropFixture.create().value));
    command.configId?.as(() => DataFixture_1.HederaIdPropsFixture.create().value);
    command.configVersion?.faker((faker) => faker.number.int({ min: 1, max: 5 }));
    command.maxRate.faker((faker) => faker.number.int({ min: 200, max: 999 }));
    command.baseRate.faker((faker) => faker.number.int({ min: 101, max: 199 }));
    command.minRate.faker((faker) => faker.number.int({ min: 1, max: 99 }));
    command.startPeriod.faker((faker) => faker.number.int({ min: 1, max: 10 }));
    command.startRate.faker((faker) => faker.number.int({ min: 100, max: 999 }));
    command.missedPenalty.faker((faker) => faker.number.int({ min: 1, max: 10 }));
    command.reportPeriod.faker((faker) => faker.number.int({ min: 1, max: 10 }));
    command.rateDecimals.faker((faker) => faker.number.int({ min: 1, max: 5 }));
    command.maxDeviationCap.faker((faker) => faker.number.int({ min: 200, max: 999 }));
    command.baseLine.faker((faker) => faker.number.int({ min: 101, max: 199 }));
    command.maxDeviationFloor.faker((faker) => faker.number.int({ min: 1, max: 99 }));
    command.impactDataDecimals.faker((faker) => faker.number.int({ min: 1, max: 5 }));
    command.adjustmentPrecision.faker((faker) => faker.number.int({ min: 1, max: 5 }));
    command.diamondOwnerAccount?.as(() => DataFixture_1.HederaIdPropsFixture.create().value);
    command.externalControlListsIds?.as(() => [DataFixture_1.HederaIdPropsFixture.create().value]);
    command.externalKycListsIds?.as(() => [DataFixture_1.HederaIdPropsFixture.create().value]);
    command.complianceId?.as(() => DataFixture_1.HederaIdPropsFixture.create().value);
    command.identityRegistryId?.as(() => DataFixture_1.HederaIdPropsFixture.create().value);
    command.proceedRecipientsIds?.faker((faker) => [DataFixture_1.HederaIdPropsFixture.create().value]);
    command.proceedRecipientsData?.as(() => ["0x0000"]);
});
