adminApi: {
    setRememberMe: (
        remember: boolean,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getOrders: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getOrder: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    markShipped: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getCustomers: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getCustomer: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    updateCustomer: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getProducts: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
            category?: number;
            brand?: number;
            is_active?: boolean;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getProduct: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    createProduct: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateProduct: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    toggleProductActive: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    generateVariants: (
        id: number,
        data: {
            color_ids?: number[];
            combination_ids?: number[];
            size_ids: number[];
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteProduct: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getCategories: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getCategoryTree: () => Promise<AxiosResponse<any, any, {}>>;
    createCategory: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateCategory: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteCategory: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getBrands: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createBrand: (data: FormData) => Promise<AxiosResponse<any, any, {}>>;
    updateBrand: (
        id: number,
        data: FormData,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteBrand: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getColors: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            categories?: number;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createColor: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateColor: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteColor: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getColorCategories: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createColorCategory: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateColorCategory: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteColorCategory: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getSizes: (
        params?: { page?: number; page_size?: number; ordering?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createSize: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateSize: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteSize: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getSizeTypes: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createSizeType: (
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateSizeType: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteSizeType: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getVariants: (
        params?: { product_id?: number; page?: number; page_size?: number },
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateVariant: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getProductColorImages: (
        params?: { product_id?: number },
    ) => Promise<AxiosResponse<any, any, {}>>;
    uploadProductColorImage: (
        data: FormData,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateProductColorImage: (
        id: number,
        data: FormData,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteProductColorImage: (
        id: number,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getColorCombinations: (
        params?: { product_id?: number },
    ) => Promise<AxiosResponse<any, any, {}>>;
    createColorCombination: (
        data: FormData,
    ) => Promise<AxiosResponse<any, any, {}>>;
    updateColorCombination: (
        id: number,
        data: FormData,
    ) => Promise<AxiosResponse<any, any, {}>>;
    deleteColorCombination: (
        id: number,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsRevenue: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsOrders: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsTopProducts: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsByCategory: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsByBrand: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsLowStock: () => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsQuickActions: () => Promise<AxiosResponse<any, any, {}>>;
    getAnalyticsCustomers: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAuditLogs: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
            user?: number;
            model_name?: string;
            action?: string;
            start_date?: string;
            end_date?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getAuditLog: (id: number) => Promise<AxiosResponse<any, any, {}>>;
    getAuditLogModels: () => Promise<AxiosResponse<any, any, {}>>;
    getAuditLogUsers: () => Promise<AxiosResponse<any, any, {}>>;
    getHealthDashboard: (
        refresh?: boolean,
    ) => Promise<AxiosResponse<any, any, {}>>;
    getHealthActivity: (
        params?: { action?: string; limit?: number },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getBackups: (
        params?: { limit?: number; offset?: number; recent?: number },
    ) => Promise<AxiosResponse<any, any, {}>>;
    getMfaStatus: () => Promise<AxiosResponse<any, any, {}>>;
} = ...

Admin-specific API helpers.

Phase 72: session persistence. Phase 73: order management endpoints (list, detail, mark shipped).

Type declaration

  • setRememberMe: (remember: boolean) => Promise<AxiosResponse<any, any, {}>>

    Set session persistence after admin login.

    • remember=true -> persistent cookie (30 days)
    • remember=false -> browser-session cookie (expires on close)
  • getOrders: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>

    List all orders (admin view).

  • getOrder: (id: number) => Promise<AxiosResponse<any, any, {}>>

    Get a single order by ID (admin view).

  • markShipped: (id: number) => Promise<AxiosResponse<any, any, {}>>

    Mark an order as shipped.

  • getCustomers: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>

    List all customers (admin view).

  • getCustomer: (id: number) => Promise<AxiosResponse<any, any, {}>>

    Get a single customer by ID (admin view).

  • updateCustomer: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>

    Update a customer (admin view).

  • getProducts: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
            category?: number;
            brand?: number;
            is_active?: boolean;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getProduct: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • createProduct: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateProduct: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • toggleProductActive: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • generateVariants: (
        id: number,
        data: {
            color_ids?: number[];
            combination_ids?: number[];
            size_ids: number[];
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteProduct: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getCategories: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getCategoryTree: () => Promise<AxiosResponse<any, any, {}>>
  • createCategory: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateCategory: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteCategory: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getBrands: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • createBrand: (data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • updateBrand: (id: number, data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • deleteBrand: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getColors: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            categories?: number;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • createColor: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateColor: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteColor: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getColorCategories: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • createColorCategory: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateColorCategory: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteColorCategory: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getSizes: (
        params?: { page?: number; page_size?: number; ordering?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • createSize: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateSize: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteSize: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getSizeTypes: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>
  • createSizeType: (data: Record<string, unknown>) => Promise<AxiosResponse<any, any, {}>>
  • updateSizeType: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • deleteSizeType: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getVariants: (
        params?: { product_id?: number; page?: number; page_size?: number },
    ) => Promise<AxiosResponse<any, any, {}>>
  • updateVariant: (
        id: number,
        data: Record<string, unknown>,
    ) => Promise<AxiosResponse<any, any, {}>>
  • getProductColorImages: (params?: { product_id?: number }) => Promise<AxiosResponse<any, any, {}>>
  • uploadProductColorImage: (data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • updateProductColorImage: (id: number, data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • deleteProductColorImage: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getColorCombinations: (params?: { product_id?: number }) => Promise<AxiosResponse<any, any, {}>>
  • createColorCombination: (data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • updateColorCombination: (id: number, data: FormData) => Promise<AxiosResponse<any, any, {}>>
  • deleteColorCombination: (id: number) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsRevenue: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsOrders: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsTopProducts: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsByCategory: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsByBrand: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsLowStock: () => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsQuickActions: () => Promise<AxiosResponse<any, any, {}>>
  • getAnalyticsCustomers: (
        params: { range: string; start?: string; end?: string },
    ) => Promise<AxiosResponse<any, any, {}>>
  • getAuditLogs: (
        params?: {
            page?: number;
            page_size?: number;
            ordering?: string;
            search?: string;
            user?: number;
            model_name?: string;
            action?: string;
            start_date?: string;
            end_date?: string;
        },
    ) => Promise<AxiosResponse<any, any, {}>>

    List audit logs (paginated, filterable).

  • getAuditLog: (id: number) => Promise<AxiosResponse<any, any, {}>>

    Get single audit log detail.

  • getAuditLogModels: () => Promise<AxiosResponse<any, any, {}>>

    Get distinct model names for filter dropdown.

  • getAuditLogUsers: () => Promise<AxiosResponse<any, any, {}>>

    Get distinct users for filter dropdown.

  • getHealthDashboard: (refresh?: boolean) => Promise<AxiosResponse<any, any, {}>>

    Get health dashboard data (cached by default).

  • getHealthActivity: (
        params?: { action?: string; limit?: number },
    ) => Promise<AxiosResponse<any, any, {}>>

    Get recent admin activity feed (filterable by action).

  • getBackups: (
        params?: { limit?: number; offset?: number; recent?: number },
    ) => Promise<AxiosResponse<any, any, {}>>

    Get backup records (paginated or recent).

  • getMfaStatus: () => Promise<AxiosResponse<any, any, {}>>