indexes:

# used to list proposal in descending order of their score
- kind: StudentProposal
  properties:
  - name: org
  - name: status
  - name: score
    direction: desc

# used to list reviews in ascending order of date
- kind: Review
  properties:
  - name: is_public
  - name: scope
  - name: created

# used to determine which orgs have more then 0 slots assigned.
- kind: Organization
  properties:
  - name: scope
  - name: status
  - name: slots

# used to order accepted orgs
- kind: Organization
  properties:
  - name: scope
  - name: status
  - name: name

# used to determine which proposals have a mentor assigned
- kind: StudentProposal
  properties:
  - name: org
  - name: status
  - name: mentor

# used to determine which proposals will be accepted
- kind: StudentProposal
  properties:
  - name: org
  - name: status
  - name: __key__

# used for the bulk mailing of students
- kind: Student
  properties:
  - name: scope
  - name: __key__

# used for the cron system
- kind: Job
  properties:
  - name: priority_group
  - name: status
  - name: __key__

# Used for bulk mailing student and mentors with survey reminders. Also used
# for gathering GradingRecords for evaluation purposes.
- kind: StudentProject
  properties:
  - name: program
  - name: status
  - name: __key__

# Used to update StudentProjects with the grade_decsion contained in a
# GradingRecord.
- kind: GradingRecord
  properties:
  - name: grading_survey_group
  - name: __key__

# used to order the accepted GHOPorganizations on there name
- kind: GHOPOrganization
  properties:
  - name: scope
  - name: status
  - name: name

# used to order GHOPComments under a GHOPTask with that GHOPTask being
# its ancestor entity in the entity group.
- kind: GHOPComment
  ancestor: yes
  properties:
  - name: created_on

# used to order GHOPWorkSubmissions under a GHOPTask with that GHOPTask being
# its ancestor entity in the entity group.
- kind: GHOPWorkSubmission
  ancestor: yes
  properties:
  - name: submitted_on

# used to fetch Task Difficulty levels for a given GHOP Program in the
# specified order of tags.
- kind: TaskDifficultyTag
  properties:
  - name: scope
  - name: order
    direction: desc

# used to fetch Task Difficulty levels for a given GHOP Program in the
# specified order of tags which is used to create a new tag. When creating
# a TaskDifficultyTag we need to determine the highest order'ed Tag and then
# assign an order of one greater than the highest order'ed tag to the newly
# created tag.
- kind: TaskDifficultyTag
  properties:
  - name: scope
  - name: order

# used to fetch Task Type tags for a given GHOP Program in the
# specified order of tags.
- kind: TaskTypeTag
  properties:
  - name: scope
  - name: order
    direction: desc

# used to fetch Task Type tags for a given GHOP Program in the
# specified order of tags which is used to create a new tag. When creating
# a TaskTypeTag we need to determine the highest order'ed Tag and then
# assign an order of one greater than the highest order'ed tag to the newly
# created tag.
- kind: TaskTypeTag
  properties:
  - name: scope
  - name: order

# used to fetch arbitrary tags for a given GHOP Program in the
# specified order of tags.
- kind: TaskArbitraryTag
  properties:
  - name: scope
  - name: order
    direction: desc

# AUTOGENERATED

# This index.yaml is automatically updated whenever the dev_appserver
# detects that a new type of query is run.  If you want to manage the
# index.yaml file manually, remove the above marker line (the line
# saying "# AUTOGENERATED").  If you want to manage some indexes
# manually, move them above the marker line.  The index.yaml file is
# automatically uploaded to the admin console when you next deploy
# your application using appcfg.py.
