import CategoryFilter from "./Filters/CategoryFilter";
import TagFilter from "./Filters/TagFilter";
import AttributeFilter from "./Filters/AttributeFilter";
import PriceRangeFilter from "./Filters/PriceRangeFilter";
import SearchFilter from "./Filters/SearchFilter";
import ClearFiltersButton from "./Filters/ClearFiltersButton";
import ProductList from "./Products/ProductList";
import FilterManager from "./FilterManager";
import HandleMobileFiltersBtns from "./Filters/HandleMobileFiltersBtns";

class ComponentsInitializer {
    static init() {
        // Initialize filter components
        const searchFilter = new SearchFilter();
        searchFilter.init();

        const categoryFilter = new CategoryFilter();
        categoryFilter.init();

        const tagFilter = new TagFilter();
        tagFilter.init();

        const attributeFilter = new AttributeFilter();
        attributeFilter.init();

        const priceRangeFilter = new PriceRangeFilter();
        priceRangeFilter.init();

        // Initialize clear filters button
        const clearFiltersButton = new ClearFiltersButton();

        const mobileFiltersBtns = new HandleMobileFiltersBtns();

        // Initialize product list
        const productList = new ProductList();
        productList.init();

        // Initialize filter manager (orchestrates all filtering)
        const filterManager = FilterManager.getInstance();
        filterManager.init();
    }
}

export default ComponentsInitializer;
