Files
fm_be/internal/service/fleet_history_service.go
2026-07-16 22:16:45 +07:00

43 lines
1.4 KiB
Go

package service
import (
"context"
fleethistory "wucher/internal/domain/fleet_history"
)
type FleetHistoryService struct{ repo fleethistory.Repository }
func NewFleetHistoryService(repo fleethistory.Repository) *FleetHistoryService {
return &FleetHistoryService{repo: repo}
}
func (s *FleetHistoryService) Record(ctx context.Context, helicopterID []byte, entityType string, entityID []byte, action, message string, actor []byte) error {
if s == nil || s.repo == nil || len(helicopterID) != 16 {
return nil
}
return s.repo.Create(ctx, &fleethistory.FleetHistory{
HelicopterID: append([]byte(nil), helicopterID...),
EntityType: entityType,
EntityID: append([]byte(nil), entityID...),
Action: action,
Message: message,
Actor: append([]byte(nil), actor...),
})
}
func (s *FleetHistoryService) RecordByInspection(ctx context.Context, inspectionID []byte, entityType string, entityID []byte, action, message string, actor []byte) error {
if s == nil || s.repo == nil || len(inspectionID) != 16 {
return nil
}
helicopterID, err := s.repo.HelicopterIDByInspection(ctx, inspectionID)
if err != nil {
return err
}
return s.Record(ctx, helicopterID, entityType, entityID, action, message, actor)
}
func (s *FleetHistoryService) ListByHelicopter(ctx context.Context, helicopterID []byte, limit, offset int) ([]fleethistory.FleetHistory, int64, error) {
return s.repo.ListByHelicopter(ctx, helicopterID, limit, offset)
}