def shift_TTD_dailyconservation_idx_rule(M):
    """
    Index is (window, day, week, tour type).

    The index set gets used in the TTD_TTDS_con and TTD_TT_UB constraints.

    :param M:
    :return: Constraint index rule
    """
    return [(i, j, w, t) for i in M.WINDOWS
            for j in M.DAYS
            for w in M.WEEKS
            for t in M.activeTT
            if (i, t, j) in M.okTourTypeDay]