/*
 * (c) 2020 Pluto Inc.
 */
package tv.pluto.mongo.utils.equals;

import java.util.List;
import tv.pluto.mongo.entities.timelines.Timelines;

public class TimelinesEqualsUtils {
  public static boolean verifyTimelinesListsEquals(
      List<Timelines> mongoTimelines, List<Timelines> grpcMappedTimelines) {
    boolean result = false;

    if (mongoTimelines.isEmpty() && grpcMappedTimelines.isEmpty()) return true;

    if (mongoTimelines.isEmpty() || mongoTimelines.size() != grpcMappedTimelines.size()) {
      return false;
    }

    for (int i = 0; i < mongoTimelines.size(); i++) {
      result =
          mongoTimelines.get(i).getId().equals(grpcMappedTimelines.get(i).getId())
              && mongoTimelines.get(i).getStart().equals(grpcMappedTimelines.get(i).getStart())
              && mongoTimelines.get(i).getStop().equals(grpcMappedTimelines.get(i).getStop())
              && mongoTimelines.get(i).getChannel().equals(grpcMappedTimelines.get(i).getChannel());
      if (!result) return false;
    }

    return result;
  }
}
