<?php
/**
 * @file
 * courseplanner.rules_defaults.inc
 */

/**
 * Implements hook_default_rules_configuration().
 */
function courseplanner_default_rules_configuration() {
  $items = array();
  $items['rules_add_new_lesson'] = entity_import('rules_config', '{ "rules_add_new_lesson" : {
      "LABEL" : "Add new lesson",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "rules", "courseplanner" ],
      "USES VARIABLES" : {
        "offering" : { "label" : "Course offering", "type" : "node" },
        "date" : { "label" : "Date", "type" : "date" }
      },
      "ACTION SET" : [
        { "entity_create" : {
            "USING" : {
              "type" : "node",
              "param_type" : "cp_lesson",
              "param_title" : "Empty lesson",
              "param_author" : [ "site:current-user" ]
            },
            "PROVIDE" : { "entity_created" : { "lesson" : "Lesson" } }
          }
        },
        { "data_set" : { "data" : [ "lesson:cp-course-offering" ], "value" : [ "offering" ] } },
        { "cp_lesson_set_date" : { "lesson" : [ "lesson" ], "date" : [ "date" ] } },
        { "cp_clear_lesson" : { "lesson" : [ "lesson" ] } }
      ]
    }
  }');
  $items['rules_clear_a_lesson'] = entity_import('rules_config', '{ "rules_clear_a_lesson" : {
      "LABEL" : "Clear a lesson",
      "PLUGIN" : "rule",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "rules", "courseplanner" ],
      "USES VARIABLES" : { "lesson" : { "label" : "Lesson", "type" : "node" } },
      "IF" : [
        { "node_is_of_type" : {
            "node" : [ "lesson" ],
            "type" : { "value" : { "cp_lesson" : "cp_lesson" } }
          }
        }
      ],
      "DO" : [ { "cp_clear_lesson" : { "lesson" : [ "lesson" ] } } ]
    }
  }');
  $items['rules_cp_copy_lessons_to_weeks'] = entity_import('rules_config', '{ "rules_cp_copy_lessons_to_weeks" : {
      "LABEL" : "Copy lessons to weeks",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "lessons" : { "label" : "Lessons", "type" : "list\\u003Cnode\\u003E" },
        "weeks" : { "label" : "Weeks", "type" : "list\\u003Ctext\\u003E" }
      },
      "ACTION SET" : [
        { "cp_copy_lesson_to_weeks" : { "lessons" : [ "lessons" ], "weeks" : [ "weeks" ] } }
      ]
    }
  }');
  $items['rules_cp_create_and_add_sections_to_outline'] = entity_import('rules_config', '{ "rules_cp_create_and_add_sections_to_outline" : {
      "LABEL" : "Create sections and add to an outline",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "outline" : { "label" : "Course outline", "type" : "node" },
        "titles" : { "label" : "Section titles and sizes", "type" : "list\\u003Ctext\\u003E" }
      },
      "ACTION SET" : [
        { "cp_add_sections" : { "outline" : [ "outline" ], "sections_info" : [ "titles" ] } }
      ]
    }
  }');
  $items['rules_cp_fill_lessons'] = entity_import('rules_config', '{ "rules_cp_fill_lessons" : {
      "LABEL" : "Fill lessons with course outline",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "lessons" : { "label" : "Lessons", "type" : "list\\u003Cnode\\u003E" },
        "outline" : { "label" : "Course outline", "type" : "node" }
      },
      "ACTION SET" : [
        { "cp_fill_lessons" : { "lessons" : [ "lessons" ], "outline" : [ "outline" ] } }
      ]
    }
  }');
  $items['rules_cp_fill_lessons_with_section'] = entity_import('rules_config', '{ "rules_cp_fill_lessons_with_section" : {
      "LABEL" : "Fill lessons with a section",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "lessons" : { "label" : "Lessons", "type" : "list\\u003Cnode\\u003E" },
        "section" : { "label" : "Section", "type" : "node" }
      },
      "ACTION SET" : [
        { "cp_fill_lessons_with_section" : { "lessons" : [ "lessons" ], "section" : [ "section" ] } }
      ]
    }
  }');
  $items['rules_cp_lessons_import'] = entity_import('rules_config', '{ "rules_cp_lessons_import" : {
      "LABEL" : "Import lessons",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "offering" : { "label" : "Course offering", "type" : "node" },
        "dates" : { "label" : "Dates", "type" : "list\\u003Ctext\\u003E" }
      },
      "ACTION SET" : [
        { "cp_lessons_import" : { "offering" : [ "offering" ], "dates" : [ "dates" ] } }
      ]
    }
  }');
  $items['rules_cp_offering_create'] = entity_import('rules_config', '{ "rules_cp_offering_create" : {
      "LABEL" : "Actions on Course offering creation",
      "PLUGIN" : "reaction rule",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "rules" ],
      "ON" : [ "node_insert" ],
      "IF" : [
        { "node_is_of_type" : {
            "node" : [ "node" ],
            "type" : { "value" : { "cp_offering" : "cp_offering" } }
          }
        }
      ],
      "DO" : [ { "redirect" : { "url" : "node\\/[node:nid]\\/admin" } } ]
    }
  }');
  $items['rules_cp_push_lessons_down'] = entity_import('rules_config', '{ "rules_cp_push_lessons_down" : {
      "LABEL" : "Push lessons down",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : { "lessons" : { "label" : "Lessons", "type" : "list\\u003Cnode\\u003E" } },
      "ACTION SET" : [ { "cp_shift_lessons" : { "lessons" : [ "lessons" ], "steps" : "1" } } ]
    }
  }');
  $items['rules_cp_repeat_lesson'] = entity_import('rules_config', '{ "rules_cp_repeat_lesson" : {
      "LABEL" : "Repeat lesson",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "lesson" : { "label" : "Lesson", "type" : "node" },
        "end_date" : { "label" : "End date", "type" : "date" }
      },
      "ACTION SET" : [
        { "cp_repeat_lesson" : { "lesson" : [ "lesson" ], "end_date" : [ "end_date" ] } }
      ]
    }
  }');
  $items['rules_cp_shift_lessons'] = entity_import('rules_config', '{ "rules_cp_shift_lessons" : {
      "LABEL" : "Shift lessons",
      "PLUGIN" : "action set",
      "TAGS" : [ "Course planner" ],
      "REQUIRES" : [ "courseplanner" ],
      "USES VARIABLES" : {
        "lessons" : { "label" : "Lessons", "type" : "list\\u003Cnode\\u003E" },
        "steps" : { "label" : "Number of steps", "type" : "integer" }
      },
      "ACTION SET" : [
        { "cp_shift_lessons" : { "lessons" : [ "lessons" ], "steps" : [ "steps" ] } }
      ]
    }
  }');
  return $items;
}
