package com.xyw.console.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

  /**
   * 代码作用（白话）：允许本地 8000 端口前端跨域访问后端接口，避免浏览器把 fetch 请求挡掉。
   * 关联文件：F:/Project/xyw_console/src/modules/shared/phone-api-client.js、F:/Project/xyw_console/src/modules/shared/wechat-api-client.js。
   * 关联逻辑（调用链/消息链/数据流）：浏览器 fetch -> /api/** -> addCorsMappings() -> 后端控制器正常返回 JSON。
   */
  @Override
  /** 代码作用（白话）：允许指定本地前端端口调用后端接口。CORS（浏览器限制不同端口互访的安全规则）需要列出 5175；否则浏览器会在密码校验前以 403 拒绝登录。关联文件：frontend/vite.config.js、SecurityConfig.java。关联逻辑（调用链/消息链/数据流）：浏览器 5173/5175 -> /api/** -> addCorsMappings() -> 后端控制器。 */
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**")
      .allowedOrigins("http://localhost:8000", "http://127.0.0.1:8000", "http://localhost:5173", "http://127.0.0.1:5173", "http://localhost:5175", "http://127.0.0.1:5175")
      .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
      .allowedHeaders("*")
      .allowCredentials(true);
  }
}
