agentics_domain/models/challenge_creation/
requests.rs1use serde::{Deserialize, Serialize};
4
5use crate::models::auth::GithubUserId;
6use crate::models::github::GithubPullRequestNumber;
7use crate::models::hashes::{GitCommitSha, Sha256Digest};
8use crate::models::names::AssetName;
9use crate::models::paths::RepoRelativePath;
10use crate::models::urls::{GithubPullRequestUrl, GithubRepoRemote};
11
12use super::manifest::ChallengeCreationManifest;
13use super::private_assets::ChallengePrivateAssetKind;
14
15#[derive(Debug, Clone, Serialize, Deserialize, garde::Validate, schemars::JsonSchema)]
17#[garde(allow_unvalidated)]
18#[serde(deny_unknown_fields)]
19pub struct CreateChallengeReviewRecordRequest {
20 pub repo_url: GithubRepoRemote,
21 pub pr_number: GithubPullRequestNumber,
22 pub pr_url: GithubPullRequestUrl,
23 pub commit_sha: GitCommitSha,
24 pub challenge_path: RepoRelativePath,
25 pub pr_author_github_user_id: GithubUserId,
26 pub manifest: ChallengeCreationManifest,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize, garde::Validate, schemars::JsonSchema)]
31#[garde(allow_unvalidated)]
32#[serde(deny_unknown_fields)]
33pub struct UploadChallengePrivateAssetRequest {
34 pub asset_name: AssetName,
35 pub kind: ChallengePrivateAssetKind,
36 pub required: bool,
37 #[garde(custom(crate::validation::trimmed_non_empty))]
38 pub asset_base64: String,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, garde::Validate, schemars::JsonSchema)]
43#[garde(allow_unvalidated)]
44#[serde(deny_unknown_fields)]
45pub struct ValidateChallengeReviewRecordRequest {
46 #[garde(custom(crate::validation::trimmed_non_empty))]
47 pub repository_path: String,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize, garde::Validate, schemars::JsonSchema)]
52#[garde(allow_unvalidated)]
53#[serde(deny_unknown_fields)]
54pub struct ChallengeReviewDecisionRequest {
55 #[serde(default)]
56 pub message: String,
57 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub expected_validation_bundle_sha256: Option<Sha256Digest>,
59}