/* * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include "app_config.h" #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif typedef struct { bool wifi_connected; const char *ip; bool ap_active; const char *ap_ssid; const char *ap_ip; const char *wifi_mode; } http_server_wifi_status_t; typedef struct { bool active; bool configured; bool completed; bool persisted; char session_key[64]; char status[32]; char message[160]; char qr_data_url[256]; char account_id[64]; char user_id[96]; char token[256]; char base_url[160]; } http_server_wechat_login_status_t; typedef struct { esp_err_t (*load_config)(app_config_t *config); esp_err_t (*save_config)(const app_config_t *config); esp_err_t (*get_wifi_status)(http_server_wifi_status_t *status); esp_err_t (*wechat_login_start)(const char *account_id, bool force); esp_err_t (*wechat_login_get_status)(http_server_wechat_login_status_t *status); esp_err_t (*wechat_login_cancel)(void); esp_err_t (*wechat_login_mark_persisted)(void); } http_server_services_t; typedef struct { const char *storage_base_path; http_server_services_t services; } http_server_config_t; esp_err_t http_server_init(const http_server_config_t *config); esp_err_t http_server_start(void); esp_err_t http_server_stop(void); #ifdef __cplusplus } #endif