forked from ebhomengo/niki
90 lines
2.0 KiB
Go
90 lines
2.0 KiB
Go
package mysqlkindbox
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"time"
|
|
|
|
"git.gocasts.ir/ebhomengo/niki/entity"
|
|
"git.gocasts.ir/ebhomengo/niki/repository/mysql"
|
|
)
|
|
|
|
func scanKindBox(scanner mysql.Scanner) (entity.KindBox, error) {
|
|
var kindBox entity.KindBox
|
|
var (
|
|
kindBoxType string
|
|
amount sql.NullInt64
|
|
serialNumber sql.NullString
|
|
status string
|
|
senderAgentID sql.NullInt64
|
|
deliveredAt sql.NullTime
|
|
returnReferTimeID sql.NullInt64
|
|
returnReferDate sql.NullTime
|
|
returnAddressID sql.NullInt64
|
|
receiverAgentID sql.NullInt64
|
|
returnedAt sql.NullTime
|
|
createdAt time.Time
|
|
updatedAt time.Time
|
|
deletedAt sql.NullTime
|
|
)
|
|
|
|
err := scanner.Scan(
|
|
&kindBox.ID,
|
|
&kindBox.KindBoxReqID,
|
|
&kindBox.BenefactorID,
|
|
&kindBoxType,
|
|
&amount,
|
|
&serialNumber,
|
|
&status,
|
|
&kindBox.DeliverReferTimeID,
|
|
&kindBox.DeliverReferDate,
|
|
&kindBox.DeliverAddressID,
|
|
&kindBox.SenderAgentID,
|
|
&kindBox.DeliveredAt,
|
|
&returnReferTimeID,
|
|
&returnReferDate,
|
|
&returnAddressID,
|
|
&receiverAgentID,
|
|
&returnedAt,
|
|
&createdAt,
|
|
&updatedAt,
|
|
&deletedAt,
|
|
)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return entity.KindBox{}, err
|
|
}
|
|
|
|
kindBox.KindBoxType = entity.MapToKindBoxType(kindBoxType)
|
|
if amount.Valid {
|
|
kindBox.Amount = uint(amount.Int64)
|
|
}
|
|
if serialNumber.Valid {
|
|
kindBox.SerialNumber = serialNumber.String
|
|
}
|
|
kindBox.Status = entity.MapToKindBoxStatus(status)
|
|
if senderAgentID.Valid {
|
|
kindBox.SenderAgentID = uint(senderAgentID.Int64)
|
|
}
|
|
if deliveredAt.Valid {
|
|
kindBox.DeliveredAt = deliveredAt.Time
|
|
}
|
|
if returnReferTimeID.Valid {
|
|
kindBox.ReturnReferTimeID = uint(returnReferTimeID.Int64)
|
|
}
|
|
if returnReferDate.Valid {
|
|
kindBox.ReturnReferDate = returnReferDate.Time
|
|
}
|
|
if returnAddressID.Valid {
|
|
kindBox.ReturnAddressID = uint(returnAddressID.Int64)
|
|
}
|
|
if receiverAgentID.Valid {
|
|
kindBox.ReceiverAgentID = uint(receiverAgentID.Int64)
|
|
}
|
|
if returnedAt.Valid {
|
|
kindBox.ReturnedAt = returnedAt.Time
|
|
}
|
|
|
|
return kindBox, nil
|
|
}
|