package config

import (
	smsprovider "git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
	"git.gocasts.ir/ebhomengo/niki/adapter/redis"
	"git.gocasts.ir/ebhomengo/niki/repository/mysql"
	authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
	benefactorservice "git.gocasts.ir/ebhomengo/niki/service/benefactor/benefactor"
	"git.gocasts.ir/ebhomengo/niki/service/notification"
)

type HTTPServer struct {
	Port int  `koanf:"port"`
	Cors Cors `koanf:"cors"`
}

type Cors struct {
	AllowOrigins []string `koanf:"allow_origins"`
}

type Config struct {
	HTTPServer           HTTPServer               `koanf:"http_server"`
	Mysql                mysql.Config             `koanf:"mariadb"`
	BenefactorAuth       authservice.Config       `koanf:"benefactor_auth"`
	AdminAuth            authservice.Config       `koanf:"admin_auth"`
	Redis                redis.Config             `koanf:"redis"`
	KavenegarSmsProvider smsprovider.Config       `koanf:"kavenegar_sms_provider"`
	BenefactorSvc        benefactorservice.Config `koanf:"benefactor_service"`
	NotificationSvc      notification.Config      `koanf:"notification_service"`
}
