package app import "strings" func isTransportConflictBlock(conflict TransportConflictRecord) bool { return strings.EqualFold(strings.TrimSpace(conflict.Severity), "block") } func isTransportConflictForceOverridable(conflict TransportConflictRecord) bool { if !isTransportConflictBlock(conflict) { return false } switch strings.ToLower(strings.TrimSpace(conflict.Type)) { case "owner_switch": return true default: return false } } func splitTransportBlockingConflicts(conflicts []TransportConflictRecord) (overridable []TransportConflictRecord, hard []TransportConflictRecord) { overridable = make([]TransportConflictRecord, 0) hard = make([]TransportConflictRecord, 0) for _, conflict := range conflicts { if !isTransportConflictBlock(conflict) { continue } if isTransportConflictForceOverridable(conflict) { overridable = append(overridable, conflict) continue } hard = append(hard, conflict) } return overridable, hard }