Commit d0124af2 authored by Rosana Aurélio's avatar Rosana Aurélio

[API] Correção nos schemas

parent 152ec00f
ScheduledEvent:
Assessment:
required:
- id
- startsAt
- endsAt
- title
- showResult
- showAnswerKey
- type
- locationType
- status
properties:
id:
description: The object identification
description: Object identifier
type: integer
startsAt:
format: date-time
description: The time of the begining of the assessment
title:
type: string
endsAt:
format: date-time
description: The time of the ending of the assessment
type: string
Assessment:
required:
- status
- type
- id
- resultAvailable
- answerKeyAvailable
- locationType
- schedule
properties:
status:
location:
description:
type: string
enum:
- PREP
- SUBMISSION
- EVALUATION
exam:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Exam'
showResult:
type: boolean
description:
Boolean indicating if the result is already avialable to exhibition
showAnswerKey:
type: boolean
description:
Boolean indicating if the answerKey is already available to exhibition
type:
type: string
enum:
- VIRTUAL
- HANDMADE
schedule:
$ref: '#/ScheduledEvent'
location:
description: Why the fuck is this a string?
type: string
exam:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Exam'
id:
description: Object identifier
type: integer
locationType:
type: string
enum:
- ONLINE
- ON_SITE
resultAvailable:
description:
Boolean indicating if the result is already avialable to exhibition
type: boolean
answerKeyAvailable:
description:
Boolean indicating if the answerKey is already available to exhibition
type: boolean
- ON_SITE
status:
type: string
enum:
- PREP
- SUBMISSION
- EVALUATION
assignments:
type: array
items:
$ref: '#/Assignment'
discriminator:
propertyName: type
mapping:
VIRTUAL: '#/VirtualAssessment'
HANDMADE: '#/HandmadeAssessment'
VirtualAssessment:
AssessmentEvent:
required:
- enforceSequence
allOf:
- $ref: '#/Assessment'
- type: object
properties:
enforceSequence:
type: boolean
description:
Boolean indicating if the assessment must be done in order
- timestamp
- type
properties:
timestamp:
type: string
desc:
type: string
type:
type: string
enum:
- ASSESSMENT_CREATED
- EXAM_UPDATED
- SUBMISSION_ACCEPTANCE_OPENED
- SUBMISSION_ACCEPTANCE_CLOSED
- EVALUATION_PERFORMED
- ANSWER_KEY_ACCESS_ENABLED
- ANSWER_KEY_ACCESS_DISABLED
- EVALUATIONS_ACCESS_ENABLED
- EVALUATIONS_ACCESS_DISABLED
- ASSESSMENT_CLOSED
Assignment:
required:
status
properties:
status:
type: string
enum:
- PENDING
- STARTED
- DONE
- EVALUATED
drafts:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Submission.yaml/#/VirtualAssessmentsSubmissionsDraft'
submissions:
type: array
items:
$ref: '#AssessmentSubmission'
currentSubmissions:
$ref: '#AssessmentSubmission'
assessment:
$ref: '#Assessment'
competifier:
$ref: '#Competifier'
HandmadeAssessment:
required:
- submitterType
......@@ -87,9 +110,31 @@ HandmadeAssessment:
enum:
- ADMIN
- ADMIN_OR_COMPETIFIER
AssessmentEvent:
ScheduledEvent:
required:
- id
- startsAt
- endsAt
properties:
timestamp:
id:
description: The object identification
type: integer
startsAt:
format: date-time
description: The time of the begining of the assessment
type: string
desc:
endsAt:
format: date-time
description: The time of the ending of the assessment
type: string
VirtualAssessment:
required:
- enforceSequence
allOf:
- $ref: '#/Assessment'
- type: object
properties:
enforceSequence:
type: boolean
description:
Boolean indicating if the assessment must be done in order
Competifier:
required:
- type
- user
- competition
properties:
tags:
type: array
items:
$ref: '#/Tag'
type:
type: string
enum:
- SOLO
- TEAM
events:
user:
type: number
email:
type: string
registration:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Submission.yaml/#/Submission'
tags:
type: array
items:
$ref: '#/Tag'
participations:
type: array
items:
$ref: '#/CompetifierEvent'
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Phase.yaml/#/PhaseParticipation'
competition:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Phase.yaml/#/Competition'
assignments:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment'
discriminator:
propertyName: type
mapping:
SOLO: '#/SoloCompetifier'
TEAM: '#/TeamCompetifier'
Participant:
required:
- firstName
- email
properties:
firstName:
type: string
lastName:
type: string
email:
type: string
tags:
type: array
items:
$ref: '#/Tag'
SoloCompetifier:
required:
- firstName
allOf:
- $ref: '#/Competifier'
- type: object
......@@ -25,6 +61,8 @@ SoloCompetifier:
lastName:
type: string
TeamCompetifier:
required:
- name
allOf:
- $ref: '#/Competifier'
- type: object
......@@ -38,43 +76,14 @@ TeamCompetifier:
items:
$ref: '#/Participant'
Tag:
required:
- label
- value
properties:
label:
type: string
value:
type: string
Participant:
properties:
firstName:
type: string
lastName:
type: string
tags:
type: array
items:
$ref: '#/Tag'
Message:
properties:
timestamp:
format: date-time
type: string
title:
type: string
body:
type: string
read:
type: boolean
CompetifierEvent:
required:
- timestamp
- descr
- type
properties:
timestamp:
type: integer
descr:
type: string
type:
type: string
QuestionGroup:
Alternative:
required:
- order
- statement
properties:
order:
type: number
statement:
type: string
Exam:
required:
- id
- label
- weight
- title
- type
- cover
- questions
- groups
properties:
id:
description: Object identifier
type: integer
label:
title:
type: string
type:
type: string
weight:
format: float
type: number
QuestionStatement:
enum:
- SUBJECTIVE-ONLY
- OBJECTIVE-ONLY
- MIXED
cover:
$ref: '#/ExamCover'
groups:
type: array
items:
$ref: '#/QuestionGroup'
questions:
type: array
items:
oneOf:
- $ref: '#/SubjectiveQuestion'
- $ref: '#/ObjectiveQuestion'
ExamCover:
required:
- id
- content
properties:
content:
type: string
id:
type: integer
content:
ExamQuestionComplaint:
properties:
timestamp:
format: date-time
type: string
text:
type: string
question:
$ref: '#/Question'
ObjectiveQuestion:
allOf:
- $ref: '#/Question'
- type: object
properties:
answerKey:
$ref: '#/Alternative'
alternatives:
type: array
items:
$ref: '#/Alternative'
Question:
required:
- type
- id
- group
- order
- weight
- order
- type
- status
- group
- statement
properties:
type:
description: Inheritance type identifcation
type: string
enum:
- SUBJECTIVE
- OBJECTIVE
statement:
type: string
id:
description: object identifier of this Question
type: integer
group:
description: Group for which this given Question belongs in this Exam
type: integer
order:
description: Position of this Question in this Exam
type: integer
weight:
format: float
description: Weight associated with this Question
type: number
type: number
type:
description: Inheritance type identifcation
type: string
enum:
- SUBJECTIVE
- OBJECTIVE
status:
type: string
enum:
- ACTIVE
- CANCELED
- CANCELED
group:
description: Group for which this given Question belongs in this Exam
type: integer
statement:
type: string
discriminator:
propertyName: type
mapping:
SUBJECTIVE: '#/SubjectiveQuestion'
OBJECTIVE: '#/ObjectiveQuestion'
SubjectiveQuestion:
allOf:
- $ref: '#/Question'
- type: object
properties:
answerKey:
format: string
type: string
ObjectiveQuestion:
allOf:
- $ref: '#/Question'
- type: object
properties:
alternatives:
type: array
items:
$ref: '#/Alternative'
answerKey:
type: integer
ExamCover:
QuestionGroup:
required:
- content
- id
- label
- weight
properties:
content:
type: string
id:
type: integer
Exam:
required:
- type
- title
- groups
- questions
- id
properties:
type:
type: string
enum:
- SUBJECTIVE-ONLY
- OBJECTIVE-ONLY
- MIXED
title:
label:
type: string
cover:
$ref: '#/ExamCover'
groups:
type: array
items:
$ref: '#/QuestionGroup'
questions:
type: array
items:
oneOf:
- $ref: '#/SubjectiveQuestion'
- $ref: '#/ObjectiveQuestion'
id:
description: Object identifier
type: integer
Alternative:
weight:
format: float
type: number
QuestionStatement:
required:
- order
- statement
- id
- content
properties:
order:
title: order
description: position of this alternative to it's question
type: integer
statement:
description: the alternative statement
type: string
id:
description: Object identifier
type: integer
ExamQuestionComplaint:
properties:
timestamp:
format: date-time
type: string
text:
content:
type: string
question:
$ref: '#/Question'
SubjectiveQuestion:
allOf:
- $ref: '#/Question'
- type: object
properties:
answerKey:
format: string
type: string
Competition:
required:
- subscription
- name
- uri
- id
- uri
- name
- status
- exams
- subscription
properties:
id:
type: integer
uri:
type: string
name:
......@@ -17,53 +14,148 @@ Competition:
type: string
status:
type: string
enum:
enum:
- ACTIVE
- INACTIVE
- INACTIVE
subscription:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Subscription.yaml/#/Subscription'
token:
type: string
exams:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Exam'
phase:
type: array
items:
$ref: '#/Phase'
finalPhase:
$ref: '#/Phase'
initialPhase:
$ref: '#/Phase'
currentPhase:
$ref: '#/Phase'
competifiers:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Competifier.yaml/#/Competifier'
AssessmentConclusionTime:
allOf:
- $ref: '#/TieBreakStrategy'
- type: object
AssessmentPriority:
required:
- priority
allOf:
$ref: '#/TieBreakStrategy'
type: object
properties:
priority:
type: integer
AssessmentPriorityStrategy:
properties:
priorities:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/AssessmentPriority'
BestRanked:
required:
- number
properties:
number:
type: number
tieBreakStrategies:
type: array
items:
$ref: '#/TieBreakStrategy'
ClassificationStrategy:
required:
- type
properties:
type:
type: string
enum:
- BEST_RANKED
- MINIMUM_PERFORMANCE
discriminator:
propertyName: type
mapping:
BEST_RANKED: '#/BestRanked'
MINIMUM_PERFORMANCE: '#/MinimumPerformance'
EvaluationFormula:
required:
- expression
properties:
id:
type: integer
expression:
type: string
GroupPriority:
properties:
priority:
type: number
questionGroup:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/QuestionGroup'
MinimumPerformance:
required:
- cutOffMark
allOf:
- $ref: '#/ClassificationStrategy'
- type: object
properties:
cutOffMark:
type: number
Phase:
required:
- id
- label
- type
- status
- evaluationFormula
- classificationStrategy
- competition
properties:
id:
type: integer
label:
type: string
status:
type: string
enum:
- PREP
- ONGOING
- EVALUATION
- CLOSED
previous:
type: integer
$ref: '#/Phase'
next:
type: integer
status:
type: integer
events:
type: array
items:
type: integer
$ref: '#/Phase'
evaluationFormula:
$ref: '#/EvaluationFormula'
classificationStrategy:
$ref: '#/ClassificationStrategy'
formula:
type: string
$ref: '#/ClassificationStrategy'
ranking:
$ref: '#/Ranking'
assessments:
type: array
items:
type: integer
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assessment'
evaluations:
type: array
items:
$ref: '#/Ranking'
events:
type: array
items:
$ref: '#/PhaseEvent'
participations:
type: array
items:
type: integer
$ref: '#/PhaseParticipation'
competition:
$ref: '#/Competition'
PhaseEvent:
required:
- type
- timestamp
- descr
- type
properties:
timestamp:
type: integer
......@@ -79,78 +171,36 @@ PhaseEvent:
- PHASE_CLOSED
PhaseParticipation:
properties:
rank:
$ref: '#/Rank'
competifier:
$ref: '#/Competifier'
phase:
$ref: '#/Phase'
BestRanked:
required:
- tieBreakCriterias
- number
allOf:
- $ref: '#/ClassificationStrategy'
- type: object
properties:
number:
type: integer
tieBreakCriterias:
type: array
items:
$ref: '#/TieBreakCriteria'
MinimumPerformance:
required:
- cutOffMark
allOf:
- $ref: '#/ClassificationStrategy'
- type: object
properties:
cutOffMark:
type: number
ClassificationStrategy:
required:
- type
properties:
id:
type: integer
type:
status:
type: string
enum:
- BEST_RANKED
- MINIMUM_PERFORMANCE
discriminator:
propertyName: type
mapping:
BEST_RANKED: '#/BestRanked'
MINIMUM_PERFORMANCE: '#/MinimumPerformance'
EvaluationFormula:
required:
- expression
properties:
id:
type: integer
expression:
type: string
TieBreakCriteria:
required:
- type
properties:
id:
type: integer
type:
type: integer
- ACTIVE
- APPROVED
- DISQUALIFIED
- REJECTED
assignments:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment'
QuestionGroupPriorityStrategy:
allOf:
$ref: '#/TieBreakStrategy'
type: object
properties:
priorities:
type: array
items:
$ref: '#/GroupPriority'
Rank:
required:
- position
- grade
- status
- timestamp
properties:
timestamp:
type: integer
classificationStrategy:
$ref: '#/ClassificationStrategy'
EvaluationFormula:
$ref: '#/EvaluationFormula'
position:
type: integer
grade:
......@@ -160,20 +210,44 @@ Rank:
enum:
- QUALIFIED
- DISQUALIFIED
evaluations:
type: array
items:
type: integer
participation:
$ref: '#/PhaseParticipation'
Ranking:
required:
- id
- timestamp
properties:
id:
type: integer
ranks:
evaluationFormula:
$ref: '#/EvaluationFormula'
positions:
type: array
items:
items:
$ref: '#/Rank'
timestamp:
classificationStrategy:
$ref: '#/ClassificationStrategy'
qualified:
type: array
items:
$ref: '#Rank'
TieBreakStrategy:
required:
- type
properties:
id:
type: integer
type:
type: string
enum:
- ASSESSMENT_PRIORITY
- QUESTION_PRIORITY
- ASSESSMENT_CONCLUSION_TIME
priority:
type: integer
\ No newline at end of file
discriminator:
propertyName: type
mapping:
ASSESSMENT_PRIORITY: '#/AssessmentPriority'
QUESTION_PRIORITY: '#/QuestionGroupPriorityStrategy'
ASSESSMENT_CONCLUSION_TIME: '#/AssessmentConclusionTime'
AssessmentSubmission:
Answer:
required:
- type
- question
properties:
assessment:
description: The id assessment that this submission refers to
type: integer
type:
type: string
enum:
- VIRTUAL
- HANDMADE
- SUBJECTIVE
- OBJECTIVE
question:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question'
AnswerGrade:
required:
- grade
- question
properties:
grade:
format: float
type: number
question:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Exam.yaml/#/Question'
AssessmentSubmission:
required:
- type
properties:
lastUpdate:
format: date-time
type: number
description: Last time this submission was modified
assignment:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#Assignment'
type:
type: string
competifier:
type: integer
description: The id of the competifier that this submission refers to
enum:
- VIRTUAL
- HANDMADE
discriminator:
propertyName: type
AssessmentSubmissionEvaluation:
required:
- timestamp
- submission
properties:
timestamp:
type: integer
grade:
type: number
format: float
submission:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#AssessmentSubmission'
grades:
type: array
items:
$ref: '#/AnswerGrade'
HandmadeAssessmentSubmission:
allOf:
- $ref: '#/AssessmentSubmission'
- type: object
required:
- uploadUri
properties:
loadUri:
uploadUri:
type: string
ObjectiveAnswer:
allOf:
- $ref: '#/Answer'
- type: object
required:
- alternativeKey
properties:
alternativeKey:
type: string
SubjectiveAnswer:
allOf:
- $ref: '#/Answer'
- type: object
required:
- freeText
properties:
freeText:
type: string
VirtualAssessmentSubmission:
allOf:
- $ref: '#/AssessmentSubmission'
- type: object
required:
- startedAt
properties:
startedAt:
type: string
......@@ -39,32 +96,13 @@ VirtualAssessmentSubmission:
type: array
items:
$ref: '#/Answer'
Answer:
properties:
type:
type: integer
freeText:
type: string
choice:
type: integer
question:
type: integer
AssessmentSubmissionEvaluation:
properties:
timestamp:
type: integer
grades:
type: array
items:
$ref: '#/AnswerGrade'
AnswerGrade:
properties:
grade:
format: float
type: number
question:
type: integer
draft:
$ref: '#/VirtualAssessmentSubmissionDraft'
VirtualAssessmentSubmissionDraft:
required:
- createdAt
- content
- assignment
properties:
createdAt:
format: date-time
......@@ -75,5 +113,76 @@ VirtualAssessmentSubmissionDraft:
content:
type: string
assessment:
format: int32
type: integer
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/Assignment'
Submission:
required:
- timestamp
- type
- status
properties:
competition:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Phase.yaml/#/Competition'
timestamp:
type: number
type:
type: string
enum:
- SOLO
- TEAM
sections:
type: array
items:
$ref: '#/SubmissionSection'
invitations:
type: array
items:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Subscription.yaml/#/Invitation'
discriminator:
propertyName: type
mapping:
SOLO: '#/SoloSubmission'
TEAM: '#/TeamSubmission'
SubmissionSection:
required:
- type
- template
properties:
type:
type: string
enum:
- PARTICIPANT
- TEAM
answers:
type: array
items:
$ref: '#/answers'
template:
$ref: '#/FormTemplate'
discriminator:
propertyName: type
mapping:
PARTICIPANT: '#/ParticipantSubmissionSection'
TEAM: '#/TeamSubmissionSection'
TeamSubmission:
required:
- team
allOf:
- type: object
- $ref: '#/Submission'
properties:
team:
$ref: '#/TeamSubmissionSection'
leader:
$ref: '#/ParticipantSubmissionSection'
participants:
type: array
items:
$ref: '#/ParticipantSubmissionSection'
TeamSubmissionSection:
allOf:
- type: object
- $ref: '#SubmissionSection'
ParticipantSubmissionSection:
allOf:
type: object
$ref: '#/SubmissionSection'
\ No newline at end of file
SoloSubscription:
$ref: '#/Subscription'
TeamSubscription:
allOf:
- $ref: '#/Subscription'
- type: object
properties:
teamTemplate:
description: The team template id of this subscription
type: integer
minMembers:
type: integer
maxMembers:
type: integer
Subscription:
required:
- type
- status
properties:
participantTemplate:
description: The participant template id of this subscription
type: integer
type:
type: string
enum:
- SOLO
- TEAM
status:
type: string
enum:
- PREP
- OPEN
- CLOSED
id:
type: integer
discriminator:
propertyName: type
mapping:
- SOLO: '#/SoloSubscription'
- TEAM: '#/TeamSubscription'
SubscriptionSubmission:
required:
- status
- timestamp
- type
type: object
properties:
timestamp:
type: integer
status:
type: string
enum:
- WAITING_REVIEW
- ACCEPTED
- REJECTED
id:
type: integer
type:
type: string
enum:
- TEAM
- SOLO
discriminator:
propertyName: type
mapping:
TEAM: '#/TeamSubscriptionSubmission'
SOLO: '#/SoloSubscriptionSubmission'
SoloSubscriptionSubmission:
allOf:
- $ref: '#/SubscriptionSubmission'
- type: object
properties:
participant:
$ref: '#/ParticipantSubscriptionSection'
TeamSubscriptionSubmission:
allOf:
- $ref: '#/SubscriptionSubmission'
- type: object
properties:
team:
$ref: '#/TeamSubscriptionSection'
participants:
type: array
items:
$ref: '#/ParticipantSubscriptionSection'
leader:
$ref: '#/ParticipantSubscriptionSection'
FormTemplate:
required:
- fields
- type
properties:
type:
type: string
enum:
- TEAM
- PARTICIPANT
fields:
type: array
items:
$ref: '#/FormField'
id:
type: integer
FormField:
required:
- id
- label
- removable
- qualifier
- order
- required
- type
- unique
- removable
- type
properties:
id:
type: integer
label:
type: string
type:
type: string
enum:
- TEXT
- DATE
unique:
type: boolean
required:
type: boolean
removable:
type: boolean
qualifier:
type: string
enum:
......@@ -130,68 +21,64 @@ FormField:
- TEAM_NAME
- EMAIL
- OTHER
id:
order:
type: integer
FormAnswer:
title: Root Type for FormAnswer
description: The root of the FormAnswer type's schema.
required:
type: boolean
unique:
type: boolean
removable:
type: boolean
type:
type: string
enum:
- TEXT
- DATE
FormFieldAnswer:
required:
- field
- value
type: object
properties:
field:
type: integer
$ref: '#/FormField'
value:
type: string
error:
type: string
qualifier:
type: string
enum:
- FIRST_NAME
- LAST_NAME
- LAST_NAME
- TEAM_NAME
- EMAIL
- EMAIL
- OTHER
id:
type: integer
SubscriptionSection:
title: Root Type for SubscriptionSection
description: The root of the SubscriptionSection type's schema.
FormTemplate:
required:
- answers
- template
- type
type: object
properties:
template:
type: integer
answers:
type: array
items:
$ref: '#/FormAnswer'
- id
- field
- value
properties:
id:
type: integer
type:
field:
$ref: '#/FormField'
value:
type: string
qualifier:
type: string
enum:
- TEAM
- PARTICIPANT
TeamSubscriptionSection:
type: object
allOf:
- $ref: '#/SubscriptionSection'
ParticipantSubscriptionSection:
type: object
allOf:
- $ref: '#/SubscriptionSection'
- FIRST_NAME
- LAST_NAME
- TEAM_NAME
- EMAIL
- OTHER
Invitation:
title: Submission invitation token.
required:
- id
- token
- subject
- submission
- status
type: object
properties:
id:
......@@ -199,12 +86,58 @@ Invitation:
token:
type: string
subject:
type: string
type:
type: string
submission:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Submission.yaml/#/Submission'
status:
type: string
enum:
- AVAILABLE
- CONSUMED
- EXPIRED
submission:
$ref: '#/SubscriptionSubmission'
\ No newline at end of file
- EXPIRED
SoloSubscription:
allOf:
type: object
$ref: '#/Subscription'
Subscription:
required:
- requestReview
- status
- participantTemplate
properties:
id:
type: integer
requestReview:
type: boolean
status:
type: string
enum:
- PREP
- OPEN
- CLOSED
schedule:
$ref: 'https://gitlab.dev.evologica.com.br/Competify/Docs/raw/master/Api/components/schemas/Assessment.yaml/#/ScheduleEvent'
type:
type: string
enum:
- SOLO
- TEAM
participantTemplate:
$ref: '#/FormTemplate'
discriminator:
propertyName: type
mapping:
- SOLO: '#/SoloSubscription'
- TEAM: '#/TeamSubscription'
TeamSubscription:
allOf:
- $ref: '#/Subscription'
- type: object
properties:
teamTemplate:
description: The team template id of this subscription
$ref: '#/FormTemplate'
minMembers:
type: integer
maxMembers:
type: integer
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment