2023-12-20 15:39:25 +00:00
package mysqlkindbox
2024-01-23 07:39:58 +00:00
import (
"context"
2024-02-03 04:56:27 +00:00
2024-01-23 07:39:58 +00:00
"git.gocasts.ir/ebhomengo/niki/entity"
2024-01-23 10:21:56 +00:00
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
2024-01-23 07:39:58 +00:00
)
2024-03-14 13:38:42 +00:00
func ( d DB ) AddKindBox ( ctx context . Context , kindBox entity . KindBox ) error {
const op = "mysqlkindbox.AddKindBox"
_ , err := d . conn . Conn ( ) . ExecContext ( ctx , ` insert into kind_boxes(kind_box_req_id,benefactor_id,type,status,sender_agent_id) values (?,?,?,?,?) ` ,
2024-07-03 17:18:06 +00:00
kindBox . KindBoxReqID , kindBox . BenefactorID , kindBox . KindBoxType , entity . KindBoxDeliveredStatus . String ( ) , kindBox . SenderAgentID )
2024-03-14 13:38:42 +00:00
if err != nil {
return richerror . New ( op ) . WithErr ( err ) .
WithMessage ( errmsg . ErrorMsgNotFound ) . WithKind ( richerror . KindUnexpected )
}
return nil
}
2024-01-27 07:05:56 +00:00
func ( d DB ) AddBatchKindBox ( ctx context . Context , kindBoxes [ ] entity . KindBox ) error {
2024-01-23 11:15:36 +00:00
const op = "mysqlkindbox.AddBatchKindBoxConcurrentlyRollback"
2024-01-27 07:05:56 +00:00
2024-03-14 13:38:42 +00:00
queryStr := "INSERT INTO kind_boxes (kind_box_req_id, benefactor_id, type, status ,deliver_refer_date,deliver_address_id,sender_agent_id,delivered_at) VALUES "
2024-02-03 05:03:58 +00:00
values := [ ] any { }
2024-01-23 10:21:56 +00:00
2024-02-03 05:03:58 +00:00
for _ , kb := range kindBoxes {
2024-03-14 13:38:42 +00:00
queryStr += "(?, ?, ?, ?, ?, ?, ?, ?),"
2024-07-03 17:18:06 +00:00
values = append ( values , kb . KindBoxReqID , kb . BenefactorID , kb . KindBoxType , kb . Status . String ( ) , kb . DeliverReferDate , kb . DeliverAddressID , kb . SenderAgentID , kb . DeliveredAt )
2024-01-23 10:21:56 +00:00
}
2024-01-23 11:15:36 +00:00
2024-02-03 05:03:58 +00:00
// trim the last ,
queryStr = queryStr [ 0 : len ( queryStr ) - 1 ]
2024-01-23 11:15:36 +00:00
2024-02-03 05:03:58 +00:00
if _ , err := d . conn . Conn ( ) . ExecContext ( ctx , queryStr , values ... ) ; err != nil {
2024-01-27 07:05:56 +00:00
return richerror . New ( op ) . WithErr ( err ) .
2024-01-23 10:21:56 +00:00
WithMessage ( errmsg . ErrorMsgSomethingWentWrong ) . WithKind ( richerror . KindUnexpected )
}
2024-01-23 11:15:36 +00:00
2024-01-27 07:05:56 +00:00
return nil
2024-01-23 07:39:58 +00:00
}