import 'package:build/build.dart';
import 'package:source_gen/source_gen.dart';

import 'api_request_generator.dart';
import 'api_response_generator.dart';

/// @ApiRequest / @ApiResponse 代码生成器入口
///
/// 在 `build.yaml` 中注册此 builder，配合 `build_runner` 使用。
/// 生成的代码通过 `SharedPartBuilder` 合并到 `.g.dart` 文件中。
///
/// - `ApiRequestGenerator`：为 `@ApiRequest` 生成 Request mixin（toJson + path/method 等）
/// - `ApiResponseGenerator`：从 `@ApiRequest(responseType: T)` 推导，生成 Response 的所有 `_$XFromJson` 函数
Builder apiRequestBuilder(BuilderOptions options) => SharedPartBuilder([
  ApiRequestGenerator(),
  ApiResponseGenerator(),
], 'api_request');
