import 'package:json_annotation/json_annotation.dart'; part 'request.g.dart'; @JsonSerializable(explicitToJson: true) class Request { String url; Object? extra; Map? labels = {}; RequestProxy? proxy; bool skipVerifyCert = false; Request({ required this.url, this.extra, this.labels, this.proxy, this.skipVerifyCert = false, }); factory Request.fromJson(Map json) => _$RequestFromJson(json); Map toJson() => _$RequestToJson(this); } @JsonSerializable() class ReqExtraHttp { String method = 'GET'; Map header = {}; String body = ''; ReqExtraHttp(); factory ReqExtraHttp.fromJson(Map json) => _$ReqExtraHttpFromJson(json); Map toJson() => _$ReqExtraHttpToJson(this); } @JsonSerializable() class ReqExtraBt { List trackers = []; ReqExtraBt(); factory ReqExtraBt.fromJson(Map json) => _$ReqExtraBtFromJson(json); Map toJson() => _$ReqExtraBtToJson(this); } enum RequestProxyMode { follow, none, custom, } @JsonSerializable() class RequestProxy { RequestProxyMode mode = RequestProxyMode.follow; String scheme = 'http'; String host = ''; String usr = ''; String pwd = ''; RequestProxy(); factory RequestProxy.fromJson(Map json) => _$RequestProxyFromJson(json); Map toJson() => _$RequestProxyToJson(this); }