import { ReactNode } from "react";
import { ZodSchema } from "zod";
export interface Option {
  label: string
  value: string
}

export interface FloatingLabelInputProps {
    label?: string;
    placeholder?: string;
    type: 'text' | 'password' | 'select' | 'email' | 'number' | 'hidden' | 'search' | 'textarea';
    options?: Option[];
    button?: React.ReactNode;
    showPasswordToggle?: boolean;
    name: string;
    defaultValue?: string;
    onChange?: (value: string) => void;
}

export interface FormProps{
    title?: string,
    fields: FloatingLabelInputProps[],
    submit: (param: any) => unknown,
    className?: string,
    child: ReactNode,
    schema: ZodSchema,
    formClassName?: string
}

export interface StatsType {
    id: number;
    title: string;
    value: number | undefined;
    icon: string;
    color: string;
}
  
export interface Stats {
    companies: number
    documents: number
    users: number
    documents_size: number
}

export interface Company {
    id: string
    name: string
    description?: string;
    is_premium: boolean
    status: string
    owner: Owner
    total_users?: number
}
  
export interface Owner {
    id: string
    first_name: string
    email: string
    last_name: string
}

export interface CompanyById {  
  id: string
  name: string
  is_premium: boolean
  status: string
  owner: Owner
  total_users: number
  total_documents: number
  total_documents_sizes: number
  last_use: any
}