init push
This commit is contained in:
89
internal/service/helicopter_usage_service.go
Normal file
89
internal/service/helicopter_usage_service.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
helicopterusage "wucher/internal/domain/helicopter_usage"
|
||||
)
|
||||
|
||||
type HelicopterUsageService struct {
|
||||
repo helicopterusage.Repository
|
||||
}
|
||||
|
||||
func NewHelicopterUsageService(repo helicopterusage.Repository) *HelicopterUsageService {
|
||||
return &HelicopterUsageService{repo: repo}
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) Create(ctx context.Context, row *helicopterusage.HelicopterUsage) error {
|
||||
return s.repo.Create(ctx, row)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) Update(ctx context.Context, row *helicopterusage.HelicopterUsage) error {
|
||||
return s.repo.Update(ctx, row)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) ReviseManualTotals(ctx context.Context, helicopterID []byte, in helicopterusage.ManualSummaryInput, actor []byte) error {
|
||||
if len(helicopterID) != 16 {
|
||||
return nil
|
||||
}
|
||||
row, err := s.repo.GetByHelicopterID(ctx, helicopterID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if row == nil {
|
||||
row = &helicopterusage.HelicopterUsage{HelicopterID: append([]byte(nil), helicopterID...), CreatedBy: actor}
|
||||
}
|
||||
row.ApplyManualSummary(in)
|
||||
row.UpdatedBy = actor
|
||||
if len(row.ID) == 0 {
|
||||
return s.repo.Create(ctx, row)
|
||||
}
|
||||
return s.repo.Update(ctx, row)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) Delete(ctx context.Context, id []byte, deletedBy []byte) error {
|
||||
return s.repo.Delete(ctx, id, deletedBy)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) RefreshAll(ctx context.Context) error {
|
||||
if refresher, ok := s.repo.(interface {
|
||||
RefreshAll(context.Context) error
|
||||
}); ok {
|
||||
return refresher.RefreshAll(ctx)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) GetByID(ctx context.Context, id []byte) (*helicopterusage.HelicopterUsage, error) {
|
||||
return s.repo.GetByID(ctx, id)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) GetByHelicopterID(ctx context.Context, helicopterID []byte) (*helicopterusage.HelicopterUsage, error) {
|
||||
return s.repo.GetByHelicopterID(ctx, helicopterID)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) FlightStatsByFlightID(ctx context.Context, flightID []byte) (helicopterusage.FlightDayStats, error) {
|
||||
return s.repo.FlightStatsByFlightID(ctx, flightID)
|
||||
}
|
||||
|
||||
func (s *HelicopterUsageService) List(ctx context.Context, filter, sort string, limit, offset int) ([]helicopterusage.HelicopterUsage, int64, error) {
|
||||
return s.repo.List(ctx, filter, normalizeSortByRules(sort,
|
||||
sortField("helicopter_id"),
|
||||
sortField("total_landing"),
|
||||
sortField("total_airframe_hours"),
|
||||
sortField("total_airframe_cycles"),
|
||||
sortField("total_engine_1_hours"),
|
||||
sortField("total_engine_1_gpc_ng_n1"),
|
||||
sortField("total_engine_1_ptc_nf_n2"),
|
||||
sortField("total_engine_1_ccc"),
|
||||
sortField("total_engine_2_hours"),
|
||||
sortField("total_engine_2_gpc_ng_n1"),
|
||||
sortField("total_engine_2_ptc_nf_n2"),
|
||||
sortField("total_engine_2_ccc"),
|
||||
sortField("total_flight_report"),
|
||||
sortField("total_hook_release"),
|
||||
sortField("total_rotor_brake_cycle"),
|
||||
sortField("created_at"),
|
||||
sortField("updated_at"),
|
||||
), limit, offset)
|
||||
}
|
||||
Reference in New Issue
Block a user