'use client';

import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogHeader,
  DialogTitle,
} from '@repo/shadcn/dialog';
import { AccountPlan } from '@/feactures/users/schemas/account-plan.schema';
import { CreateUserForm } from './create-user-form';
import { UpdateUserForm } from './update-user-form';

interface AccountPlanModalProps {
  open: boolean;
  onOpenChange: (open: boolean) => void;
  defaultValues?: Partial<AccountPlan>;
}

export function AccountPlanModal({
  open,
  onOpenChange,
  defaultValues,
}: AccountPlanModalProps) {
  const handleSuccess = () => {
    onOpenChange(false);
  };

  const handleCancel = () => {
    onOpenChange(false);
  };

  return (
    <Dialog
      open={open}
      onOpenChange={(open) => {
        if (!open) {
          onOpenChange(false);
        }
      }}
    >
      <DialogContent className="sm:max-w-[600px] z-50 backdrop-blur-lg bg-background/80">
        <DialogHeader>
          <DialogTitle>
            {defaultValues?.id
              ? 'Actualizar usuario'
              : 'Crear usuario'}
          </DialogTitle>
          <DialogDescription>
            Complete los campos para {defaultValues?.id ? 'actualizar' : 'crear'} un usuario
          </DialogDescription>
        </DialogHeader>
        {defaultValues?.id ? ( 
          <UpdateUserForm
            onSuccess={handleSuccess}
            onCancel={handleCancel}
            defaultValues={defaultValues}
          />
        ): (
          <CreateUserForm
            onSuccess={handleSuccess}
            onCancel={handleCancel}
            defaultValues={defaultValues}
          />
        )}
      </DialogContent>
    </Dialog>
  );
}
