add stats
This commit is contained in:
@@ -121,3 +121,52 @@ class FlagIn(Schema):
|
||||
flag: Optional[Literal["red", "blue", "green", "yellow"]] = None
|
||||
|
||||
|
||||
class UserTag(Schema):
|
||||
username: str
|
||||
classname: str
|
||||
|
||||
|
||||
class TopSubmission(Schema):
|
||||
submission_id: str # UUID as string
|
||||
username: str
|
||||
classname: str
|
||||
score: float
|
||||
rating_count: int
|
||||
|
||||
|
||||
class SubmissionCountBucket(Schema):
|
||||
count_1: int # users with exactly 1 submission
|
||||
count_2: int # users with exactly 2 submissions
|
||||
count_3: int # users with exactly 3 submissions
|
||||
count_4_plus: int # users with 4+ submissions
|
||||
|
||||
|
||||
class ScoreBucket(Schema):
|
||||
range_1_2: int # [1, 2) ★
|
||||
range_2_3: int # [2, 3) ★★
|
||||
range_3_4: int # [3, 4) ★★★
|
||||
range_4_5: int # [4, 5) ★★★★
|
||||
range_5: int # [5, 5] ★★★★★
|
||||
|
||||
|
||||
class FlagStats(Schema):
|
||||
red: int
|
||||
blue: int
|
||||
green: int
|
||||
yellow: int
|
||||
|
||||
|
||||
class TaskStatsOut(Schema):
|
||||
submitted_count: int
|
||||
unsubmitted_count: int
|
||||
average_score: Optional[float]
|
||||
unrated_count: int
|
||||
nominated_count: int
|
||||
unsubmitted_users: list[UserTag]
|
||||
unrated_users: list[UserTag]
|
||||
submission_count_distribution: SubmissionCountBucket
|
||||
score_distribution: ScoreBucket
|
||||
top_submissions: list[TopSubmission]
|
||||
flag_stats: FlagStats
|
||||
classes: list[str]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user