
import '../../../{{name}}.dart';

import '../../../{{name}}_method_channel.dart';
import '../../../{{name}}_platform_interface.dart';

import '../../data/datasources/{{name}}_method_channel_datasource.dart';
import '../../data/repositories/{{name}}_repository_impl.dart';

import '{{name}}_core.dart';
import '{{name}}_api_impl.dart';

class {{sdk_class}}Wiring
{
  static {{sdk_class}}Api build() {

    // platform instance（method channel）
    final platform = {{sdk_class}}Platform.instance;
    if (platform is MethodChannel{{sdk_class}}) {
      // platform.init(); // or defer to NotificationApiImpl.init
    }

    // data layer
    final ds =  {{sdk_class}}MethodChannelDataSource(platform);
    final repo =  {{sdk_class}}RepositoryImpl(ds);
    final core =  {{sdk_class}}Core(platform: platform, repo: repo,);

    return {{sdk_class}}ApiImpl(core: core);
  }
}
