35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
"rijig/config"
|
|
"rijig/model"
|
|
)
|
|
|
|
type PickupStatusHistoryRepository interface {
|
|
CreateStatusHistory(ctx context.Context, history model.PickupStatusHistory) error
|
|
GetStatusHistoryByRequestID(ctx context.Context, requestID string) ([]model.PickupStatusHistory, error)
|
|
}
|
|
|
|
type pickupStatusHistoryRepository struct{}
|
|
|
|
func NewPickupStatusHistoryRepository() PickupStatusHistoryRepository {
|
|
return &pickupStatusHistoryRepository{}
|
|
}
|
|
|
|
func (r *pickupStatusHistoryRepository) CreateStatusHistory(ctx context.Context, history model.PickupStatusHistory) error {
|
|
return config.DB.WithContext(ctx).Create(&history).Error
|
|
}
|
|
|
|
func (r *pickupStatusHistoryRepository) GetStatusHistoryByRequestID(ctx context.Context, requestID string) ([]model.PickupStatusHistory, error) {
|
|
var histories []model.PickupStatusHistory
|
|
err := config.DB.WithContext(ctx).
|
|
Where("request_id = ?", requestID).
|
|
Order("changed_at asc").
|
|
Find(&histories).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return histories, nil
|
|
}
|