import { Data } from '@lucid-evolution/lucid';
import { AssetClassSchema } from '../../types/generic';

export const InterestCollectionParamsSchema = Data.Object({
  versionRecordNft: AssetClassSchema,
  multisigUtxoNft: AssetClassSchema,
  cdpAuthTk: AssetClassSchema,
  collateralAssetAuthTk: AssetClassSchema,
  govAuthTk: AssetClassSchema,
  cdpAssetSymbol: Data.Bytes(),
  cdpBiasTime: Data.Integer(),
  interestSettlementCooldown: Data.Integer(),
});

export type InterestCollectionParams = Data.Static<
  typeof InterestCollectionParamsSchema
>;

const InterestCollectionParams =
  InterestCollectionParamsSchema as unknown as InterestCollectionParams;

export function castInterestCollectionParams(
  params: InterestCollectionParams,
): Data {
  return Data.castTo(params, InterestCollectionParams);
}
