You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mv-api-spec/openapi/components/schemas/poll-properties.yaml

78 lines
2.4 KiB

id:
readOnly: true
type: string
description: |
A unique identifier for the poll.
That identifier has a fixed length of 20 alphanumerical characters,
including some special characters like `_`.
pattern: '[0-9a-fA-F_]{20}'
example: 1jDe1e5eF_IkaYPuoIYX
# uuid:
# readOnly: true
# type: string
# format: uuid
# # pattern is defined for implementations that don't understand format: uuid
# pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
# description: >
# A Universally Unique IDentifier for the poll. (version 4)
# example: bb788552-727d-470b-827e-d7796248d293
subject:
type: string
description: The subject of the poll.
example: What project should our neighbourhood invest in for the next year?
description:
type: string
description: >
A lengthy description of the poll.
In here should be stated the constitutive details of the poll,
whether it is informative or imperative for example.
example: >
This poll will help decide which projects get the most attention and budget
so you should consider the proposals carefully and with gumption.
proposals:
type: array
description: >
The proposals being judged by the participants of the poll.
It makes no sense to have less than two proposals in a poll.
minItems: 2
maxItems: 20
items:
$ref: ./proposal.yaml
grades:
type: array
description: |
The grades that participants may give to each proposal.
The grades should be **non-ambiguously ordinal**,
ie. their ranking should be obvious to everyone.
#### Good examples
- DISAPPROVED, APPROVED
- TO REJECT, POOR, PASSABLE, GOOD, VERY GOOD, EXCELLENT
- BORING, ENTERTAINING, FUN, AMAZING (to be discussed)
#### Bad examples
- LOUSY, MEDIOCRE, OKAY, GOOD, FINE, PEACHY
- BORING, BEAUTIFUL, FUN, MAGNIFICIENT
minItems: 2
maxItems: 10
items:
$ref: ./grade.yaml
participants:
type: array
description: |
The participants that are allowed to participate in the poll.
That property is ignored if `restrict_participants` is `false`.
---
Or should this be the list of the participants of the poll?
items:
$ref: ./participant.yaml
user-id:
type: string
description: Organizer id. If not given, a dummy user is created.
restrict-participants:
type: boolean
description: True if anyone can participate in this poll, False otherwise.
example: false