// Code generated by Wire. DO NOT EDIT.

//go:generate wire
//+build !wireinject

package di

import (
	"permissionservice/internal/client"
	"permissionservice/internal/persistance/database"
	"permissionservice/internal/repository"
	"permissionservice/internal/service"
)

// Injectors from wire.go:

func WireAppComponent() *service.PermissionService {
	dbConfig := database.ProvideConfigProduction()
	databaseDatabase := database.ProvideDatabase(dbConfig)
	permissionRepository := repository.ProvidePermissionRepository(databaseDatabase)
	authServiceClient := client.ProvideAuthClient()
	noteServiceClient := client.ProvideNoteClient()
	permissionService := service.ProvidePermissionService(permissionRepository, authServiceClient, noteServiceClient)
	return permissionService
}

func WireAppComponentDev() *service.PermissionService {
	dbConfig := database.ProvideConfigDevelopment()
	databaseDatabase := database.ProvideDatabase(dbConfig)
	permissionRepository := repository.ProvidePermissionRepository(databaseDatabase)
	authServiceClient := client.ProvideAuthClient()
	noteServiceClient := client.ProvideNoteClient()
	permissionService := service.ProvidePermissionService(permissionRepository, authServiceClient, noteServiceClient)
	return permissionService
}
