import React, { ReactNode } from 'react';
import styles from './ModuleCard.module.scss';

interface ModuleCardProps {
    children: ReactNode;
    variant?: 'default' | 'bordered' | 'bordered-left';
    className?: string;
    onClick?: () => void;
}

interface ModuleCardHeaderProps {
    children: ReactNode;
    className?: string;
}

interface ModuleCardBodyProps {
    children: ReactNode;
    className?: string;
}

export function ModuleCard({
    children,
    variant = 'default',
    className = '',
    onClick,
}: ModuleCardProps) {
    const cardClass = [
        styles.moduleCard,
        variant === 'bordered' && styles.bordered,
        variant === 'bordered-left' && styles.borderedLeft,
        className,
    ]
        .filter(Boolean)
        .join(' ');

    return (
        <div className={cardClass} onClick={onClick}>
            {children}
        </div>
    );
}

export function ModuleCardHeader({ children, className = '' }: ModuleCardHeaderProps) {
    return <div className={`${styles.moduleCardHeader} ${className}`}>{children}</div>;
}

export function ModuleCardBody({ children, className = '' }: ModuleCardBodyProps) {
    return <div className={`${styles.moduleCardBody} ${className}`}>{children}</div>;
}
