import { LucideIcon } from "lucide-react"
import { Permission } from './../redux/api/permissionApi';

export interface SettingsCardProps {
  title: string
  description: string
  icon: LucideIcon
  link: string
  linkText?: string
  progress?: number
  stats?: string[]
  color?: "blue" | "emerald" | "amber" | "violet" | "cyan" | "slate" | "rose" | "indigo"
  badge?: {
    text: string
    variant?: "outline" | "default" | "secondary"
  }
  className?: string
  Permission?: string[]
}

export interface Role {
  id?: string;
  name?: string;
  description?: string;
  usersCount?: number | string;
  permissions?: string[];
  createdAt?: string | Date;
  updatedAt?: string | Date;
  activePermissionCount?: number;
}

export interface User {
  id: string;
  name: string;
  email: string;
  role: string;
  avatar: string; 
  memberType?: string;
  team?: { id?: string; name?: string }[] | {id?: string};
  reportingTo?: User;
  joinDate?: Date;
  lastActivity?: Date;
  status?: string;
  firstName?: string;
  lastName?: string;
  phone?: {number?: number};
  companyName?: string;
  userType?: string;
  companyType?: string;
  createdAt?:  string | Date;
  updatedAt?: string | Date;
  company?: {id?: string | {id?: string, name?: string}, role?: Role[]};
  joiningDate?: string | Date;
  subCompanyName?: string;
  isTeamLead?: boolean;
  companyDetails?: { id?: string, name?: string }
}

export interface Team {
  id: string;
  name: string;
  members: string[]; 
  teamLeadId: string;
}

export type Role = {
  id: string;
  name: string;
  description: string;
  usersCount: number;
  permissions: string[];
  parentRole?: string;
}
