"use client";

import {
  defaultCurrencyConversionFormValues,
  currencyConversionTransactionFormSchema,
  type CurrencyConversionFormValues,
} from "@/components/form/schemas/currency-conversion-transaction-schema";

import {
  CurrencyPairTransactionForm,
  type CurrencyPairFormCopy,
  type LoadCurrencyPairFormOptionsClient,
} from "./currency-pair-transaction-form";

const CURRENCY_CONVERSION_COPY: CurrencyPairFormCopy = {
  sectionTitle: "Conversion details",
  sectionDescription: "Placement date, currencies, conversion rate, and amounts.",
  rateLabel: "Conversion Rate",
  amountLabel: "Amount (Currency Converted)",
};

type CurrencyConversionTransactionFormProps = {
  formId: string;
  initialValues?: CurrencyConversionFormValues;
  onSubmit?: (values: CurrencyConversionFormValues) => void;
  loadFormOptions: LoadCurrencyPairFormOptionsClient;
};

export function CurrencyConversionTransactionForm({
  formId,
  initialValues,
  onSubmit,
  loadFormOptions,
}: CurrencyConversionTransactionFormProps) {
  return (
    <CurrencyPairTransactionForm
      formId={formId}
      initialValues={initialValues}
      onSubmit={onSubmit}
      loadFormOptions={loadFormOptions}
      schema={currencyConversionTransactionFormSchema}
      defaultValues={defaultCurrencyConversionFormValues}
      copy={CURRENCY_CONVERSION_COPY}
    />
  );
}
