package shanghu

import (
	"duoduo/apis/shanghu/models"
	"duoduo/models/shanghu"
	"duoduo/tools/app"
	"github.com/gin-gonic/gin"
	"time"
)

func CreateMerchantPayInfo(c *gin.Context) {
	var inData models.CreateMerchantPayInfoRequest
	var sqlData shanghu.MerchantPayInfo

	err := c.ShouldBindJSON(&inData)
	if err != nil {
		app.Error(c, 400, err, err.Error())
		return
	}

	sqlData.CreatedAt = time.Now()
	sqlData.UpdatedAt = time.Now()
	sqlData.MerchantType = inData.MerchantType
	sqlData.MerchantOpenID = inData.MerchantOpenID
	sqlData.BankAccount = inData.BankAccount
	sqlData.BankCode = inData.BankCode
	sqlData.BankAddress = inData.BankAddress
	sqlData.BusinessLicense = inData.BusinessLicense
	sqlData.IDCardBack = inData.IDCardBack
	sqlData.IDCardFront = inData.IDCardFront
	sqlData.IDCardHand = inData.IDCardHand
	sqlData.AccountName = inData.AccountName
	sqlData.EntryInfo = inData.EntryInfo

	_, err = sqlData.Create()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	app.OK(c, nil, app.Success)

}

func GetMerchantPayInfo(c *gin.Context) {
	var inData models.GetMerchantPayInfoRequest
	var sqlData shanghu.MerchantPayInfo

	err := c.ShouldBindJSON(&inData)
	if err != nil {
		app.Error(c, 400, err, err.Error())
		return
	}
	sqlData.MerchantOpenID = inData.MerchantOpenID

	merchantPayInfo, err := sqlData.GetMerchantPayInfo()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	app.OK(c, merchantPayInfo, app.Success)

}

func UpdateMerchantPayInfo(c *gin.Context) {
	var inData models.UpdateMerchantPayInfoRequest
	var sqlData shanghu.MerchantPayInfo

	err := c.ShouldBindJSON(&inData)
	if err != nil {
		app.Error(c, 400, err, err.Error())
		return
	}

	sqlData.ID = inData.ID
	sqlData.CreatedAt = time.Now()
	sqlData.UpdatedAt = time.Now()
	sqlData.MerchantType = inData.MerchantType
	//sqlData.MerchantOpenID = inData.MerchantOpenID
	sqlData.BankAccount = inData.BankAccount
	sqlData.BankCode = inData.BankCode
	sqlData.BankAddress = inData.BankAddress
	sqlData.BusinessLicense = inData.BusinessLicense
	sqlData.IDCardBack = inData.IDCardBack
	sqlData.IDCardFront = inData.IDCardFront
	sqlData.IDCardHand = inData.IDCardHand
	sqlData.AccountName = inData.AccountName
	sqlData.EntryInfo = inData.EntryInfo

	err = sqlData.UpdateMerchantPayInfo()
	if err != nil {
		app.Error(c, 400, err, err.Error())
		return
	}

	app.OK(c, nil, app.Success)
}