Files
ojnext/src/utils/types.ts
2023-01-17 10:42:50 +08:00

118 lines
2.1 KiB
TypeScript

export type LANGUAGE =
| "C"
| "C++"
| "Python2"
| "Python3"
| "Java"
| "JavaScript"
| "Golang"
export type SUBMISSION_RESULT = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
export type ProblemStatus = "passed" | "failed" | "not_test"
export interface Problem {
_id: string
id: number
tags: string[]
created_by: {
id: number
username: string
real_name: null
}
template: { [key in LANGUAGE]?: string }
title: string
description: string
input_description: string
output_description: string
samples: {
input: string
output: string
}[]
hint: string
languages: Array<LANGUAGE>
create_time: Date
last_update_time: null
time_limit: number
memory_limit: number
io_mode: {
input: string
output: string
io_mode: string
}
spj: boolean
spj_language: null
rule_type: string
difficulty: "Low" | "Mid" | "High"
source: string
total_score: number
submission_number: number
accepted_number: number
statistic_info: {}
share_submission: boolean
contest: null
my_status: number
}
export interface Code {
language: LANGUAGE
value: string
}
export interface SubmitCodePayload {
problem_id: number
language: LANGUAGE
code: string
contest_id?: number
}
interface Info {
err: string | null
data: {
error: number
memory: number
output: null
result: SUBMISSION_RESULT
signal: number
cpu_time: number
exit_code: number
real_time: number
test_case: string
output_md5: string
}[]
}
export interface Submission {
id: string
create_time: Date
user_id: number
username: string
code: string
result: SUBMISSION_RESULT
info: Info
language: string
shared: boolean
statistic_info: {
score?: number
err_info?: string
time_cost?: number
memory_cost?: number
}
ip: string
// TODO: 这里不知道是什么
contest: null
problem: number
can_unshare: boolean
}
export interface SubmissionListPayload {
myself?: "1" | "0"
result?: string
username?: string
contest_id?: string
problem_id?: string
page: number
limit: number
offset: number
}