// Path: app/src/main/java/info/izumin/android/sunazuri/data/action/ActionModule.java
// @Module
// public class ActionModule {
//     public static final String TAG = ActionModule.class.getSimpleName();
// 
//     @Provides
//     UserActionCreator userActionCreator(OauthRepository oauthRepo,
//                                         UsersRepository usersRepo,
//                                         TeamActionCreator teamActionCreator) {
//         return new UserActionCreator(oauthRepo, usersRepo, teamActionCreator);
//     }
// 
//     @Provides
//     TeamActionCreator teamActionCreator(TeamsRepository teamsRepo) {
//         return new TeamActionCreator(teamsRepo);
//     }
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/domain/RootStore.java
// @Store({
//         AuthorizedUsersReducer.class,
//         LoginInfoReducer.class,
//         TeamsReducer.class
// })
// public interface RootStore extends BaseStore {
//     AuthorizedUsers getAuthorizedUsers();
//     Teams getTeams();
//     LoginInfo getLoginInfo();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/InfrastructureComponent.java
// @Singleton
// @Component(
//         modules = {
//                 InfrastructureModule.class,
//                 RepositoryModule.class,
//                 HttpClientModule.class,
//                 ApiModule.class,
//                 CacheModule.class
//         }
// )
// public interface InfrastructureComponent {
//     TeamsRepository teamsRepository();
//     OauthRepository oauthRepository();
//     UsersRepository usersRepository();
// 
//     OauthParams oauthParams();
// 
//     // for Picasso
//     OkHttpClient okHttpClient();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/entity/OauthParams.java
// public class OauthParams {
//     public static final String TAG = OauthParams.class.getSimpleName();
// 
//     public final String endpoint;
//     public final String clientId;
//     public final String clientSecret;
//     public final String redirectUri;
//     public final String scope;
//     public final String responseType;
//     public final String authorizePath;
//     public final String grantType;
// 
//     public OauthParams(String endpoint, String clientId, String clientSecret, String redirectUri, String scope, String responseType, String authorizePath, String grantType) {
//         this.endpoint = endpoint;
//         this.clientId = clientId;
//         this.clientSecret = clientSecret;
//         this.redirectUri = redirectUri;
//         this.scope = scope;
//         this.responseType = responseType;
//         this.authorizePath = authorizePath;
//         this.grantType = grantType;
//     }
// 
//     public String getAuthorizeUri() {
//         return endpoint + authorizePath
//                 + "?client_id="     + clientId
//                 + "&redirect_uri="  + redirectUri
//                 + "&scope="         + scope
//                 + "&response_type=" + responseType;
//     }
// }


import dagger.Component;
import info.izumin.android.sunazuri.data.action.ActionModule;
import info.izumin.android.sunazuri.data.action.team.TeamActionCreator;
import info.izumin.android.sunazuri.data.action.user.UserActionCreator;
import info.izumin.android.sunazuri.domain.RootStore;
import info.izumin.android.sunazuri.infrastructure.InfrastructureComponent;
import info.izumin.android.sunazuri.infrastructure.entity.OauthParams;
import okhttp3.OkHttpClient;
package info.izumin.android.sunazuri.data;


/**
 * Created by izumin on 5/13/2016 AD.
 */
@DataScope
@Component(
        dependencies = {
                InfrastructureComponent.class
        },
        modules = {
// Path: app/src/main/java/info/izumin/android/sunazuri/data/action/ActionModule.java
// @Module
// public class ActionModule {
//     public static final String TAG = ActionModule.class.getSimpleName();
// 
//     @Provides
//     UserActionCreator userActionCreator(OauthRepository oauthRepo,
//                                         UsersRepository usersRepo,
//                                         TeamActionCreator teamActionCreator) {
//         return new UserActionCreator(oauthRepo, usersRepo, teamActionCreator);
//     }
// 
//     @Provides
//     TeamActionCreator teamActionCreator(TeamsRepository teamsRepo) {
//         return new TeamActionCreator(teamsRepo);
//     }
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/domain/RootStore.java
// @Store({
//         AuthorizedUsersReducer.class,
//         LoginInfoReducer.class,
//         TeamsReducer.class
// })
// public interface RootStore extends BaseStore {
//     AuthorizedUsers getAuthorizedUsers();
//     Teams getTeams();
//     LoginInfo getLoginInfo();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/InfrastructureComponent.java
// @Singleton
// @Component(
//         modules = {
//                 InfrastructureModule.class,
//                 RepositoryModule.class,
//                 HttpClientModule.class,
//                 ApiModule.class,
//                 CacheModule.class
//         }
// )
// public interface InfrastructureComponent {
//     TeamsRepository teamsRepository();
//     OauthRepository oauthRepository();
//     UsersRepository usersRepository();
// 
//     OauthParams oauthParams();
// 
//     // for Picasso
//     OkHttpClient okHttpClient();
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/entity/OauthParams.java
// public class OauthParams {
//     public static final String TAG = OauthParams.class.getSimpleName();
// 
//     public final String endpoint;
//     public final String clientId;
//     public final String clientSecret;
//     public final String redirectUri;
//     public final String scope;
//     public final String responseType;
//     public final String authorizePath;
//     public final String grantType;
// 
//     public OauthParams(String endpoint, String clientId, String clientSecret, String redirectUri, String scope, String responseType, String authorizePath, String grantType) {
//         this.endpoint = endpoint;
//         this.clientId = clientId;
//         this.clientSecret = clientSecret;
//         this.redirectUri = redirectUri;
//         this.scope = scope;
//         this.responseType = responseType;
//         this.authorizePath = authorizePath;
//         this.grantType = grantType;
//     }
// 
//     public String getAuthorizeUri() {
//         return endpoint + authorizePath
//                 + "?client_id="     + clientId
//                 + "&redirect_uri="  + redirectUri
//                 + "&scope="         + scope
//                 + "&response_type=" + responseType;
//     }
// }


// Path: app/src/main/java/info/izumin/android/sunazuri/data/DataComponent.java
import dagger.Component;
import info.izumin.android.sunazuri.data.action.ActionModule;
import info.izumin.android.sunazuri.data.action.team.TeamActionCreator;
import info.izumin.android.sunazuri.data.action.user.UserActionCreator;
import info.izumin.android.sunazuri.domain.RootStore;
import info.izumin.android.sunazuri.infrastructure.InfrastructureComponent;
import info.izumin.android.sunazuri.infrastructure.entity.OauthParams;
import okhttp3.OkHttpClient;

package info.izumin.android.sunazuri.data;


/**
 * Created by izumin on 5/13/2016 AD.
 */
@DataScope
@Component(
        dependencies = {
                InfrastructureComponent.class
        },
        modules = {
                ActionModule.class,