MIF_E31222379_BE/internal/services/pickup_history_service.go

37 lines
1.1 KiB
Go

package services
import (
"context"
"time"
"rijig/model"
"rijig/internal/repositories"
)
type PickupStatusHistoryService interface {
LogStatusChange(ctx context.Context, requestID, status, changedByID, changedByRole string) error
GetStatusHistory(ctx context.Context, requestID string) ([]model.PickupStatusHistory, error)
}
type pickupStatusHistoryService struct {
repo repositories.PickupStatusHistoryRepository
}
func NewPickupStatusHistoryService(repo repositories.PickupStatusHistoryRepository) PickupStatusHistoryService {
return &pickupStatusHistoryService{repo: repo}
}
func (s *pickupStatusHistoryService) LogStatusChange(ctx context.Context, requestID, status, changedByID, changedByRole string) error {
history := model.PickupStatusHistory{
RequestID: requestID,
Status: status,
ChangedAt: time.Now(),
ChangedByID: changedByID,
ChangedByRole: changedByRole,
}
return s.repo.CreateStatusHistory(ctx, history)
}
func (s *pickupStatusHistoryService) GetStatusHistory(ctx context.Context, requestID string) ([]model.PickupStatusHistory, error) {
return s.repo.GetStatusHistoryByRequestID(ctx, requestID)
}