import type { FC } from 'react';
import React from 'react';
import cx from 'classnames';
import PreOrder from 'src/pages/productModal/components/schedulingAndPricing/PreOrder';
import { OAManagePricingURL } from 'src/utils/oa';
import SectionTitle from '../sectionTitle';
import AlbumPricing from './AlbumPricing';
import DateInfo from './DateInfo';
import TrackPricing from './TrackPricing';
import type { Product } from 'src/data/queries/product/types';
import type { MergedProduct } from 'src/product/product';

export const PARENT_CLASS_NAME = 'ProductModal';
export const CLASS_NAME = `${PARENT_CLASS_NAME}-Components-SchedulingAndPricing`;
export const INTL_PREFIX = 'contentReview.schedulingAndPricing';

export const CLASS_NAME_ROW = `${CLASS_NAME}-row`;
export const CLASS_NAME_COLUMN = `${CLASS_NAME}-column`;

interface Props {
    className?: string;
    testId?: string;
    product: Product;
    mergedProduct: MergedProduct;
}

const SchedulingAndPricing: FC<Props> = ({
    className,
    testId,
    product,
    mergedProduct,
}) => {
    return (
        <div
            className={cx(CLASS_NAME, className)}
            data-testid={testId || CLASS_NAME}
        >
            <SectionTitle
                title={$t(`${INTL_PREFIX}.schedulingAndPricing`)}
                productId={product.productId}
                formatHref={OAManagePricingURL}
                section="Scheduling and Pricing"
                isRevision={mergedProduct.isRevision}
            />
            <DateInfo product={product} />
            <PreOrder product={product} />
            <AlbumPricing product={product} />
            <TrackPricing product={product} />
        </div>
    );
};

export default SchedulingAndPricing;
