package factory

import (
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
)

func CreatePartnerInfoDao(options map[string]interface{}) (*dao.PartnerInfoDao, error) {
	var transactionContext *transaction.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*transaction.TransactionContext)
	}
	return dao.NewPartnerInfoDao(transactionContext)
}

func CreateOrderBaseDao(options map[string]interface{}) (*dao.OrderBaseDao, error) {
	var transactionContext *transaction.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*transaction.TransactionContext)
	}
	return dao.NewOrderBaseDao(transactionContext)
}

func CreateOrderBestshopDao(options map[string]interface{}) (*dao.OrderBestshopDao, error) {
	var transactionContext *transaction.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*transaction.TransactionContext)
	}
	return dao.NewOrderBestshopDao(transactionContext)
}

func CreateUsersDao(options map[string]interface{}) (*dao.UsersDao, error) {
	var transactionContext *transaction.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*transaction.TransactionContext)
	}
	return dao.NewUsersDao(transactionContext)
}

func CreateBusinessBonusDao(options map[string]interface{}) (*dao.BusinessBonusDao, error) {
	var transactionContext *transaction.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*transaction.TransactionContext)
	}
	return dao.NewBusinessBonusDao(transactionContext)
}