import React from 'react';

export interface City {
    id: number
    name: string
}

export interface AllCurrentRoles {
    id: number
    name: string
    label: string
}
export interface ModalBoxProps {
    isModalOpen?: boolean
    handleClose: () => void
    data?: Role | null
    handleOk: () => void
    cities?: City[]
    allRoles?: AllCurrentRoles[],
    scopingTypes?: ScopingType[]
}

export interface Role {
    is_default: number
    key: React.Key
    name: string
    age: number
    address: string
    id: number
    label: string
    manager_role_id: number
    subordinate_role_id: string
    city_id: string
    sort_order?: number

    // New fields
    is_leaf: number;
    is_manager: number;
    can_own_leads: number;
    scoping_type: string;
    scoping_type_id: number;

}

export interface ScopingType {
  id: number;
  name: string;
}

export interface meta {
    current_page: number
    per_page: number
    total: number
}
export interface Feature {
    id: number
    name: string
    slug: string
}
export interface Permission {
    id: number
    role_id: number
    feature_id: number
    name: string
    slug: string
}
export interface RolesState {
    roles: Role[]
    allCities: City[]
    allCurrentRoles: AllCurrentRoles[]
    scopingTypes: ScopingType[]
    error: string | null
    status: 'loading' | 'succeeded' | 'failed'
    allRoles: Role[]
    features: Feature[]
    permissions: Permission[]
}

export interface RoleSearchParams {
    page?: number
    sortColumn?: string
    search?: string
    [key: string]: unknown
}
