use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SimpleClassroomAssignment {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "public_repo")]
pub public_repo: bool,
#[serde(rename = "title")]
pub title: String,
#[serde(rename = "type")]
pub r#type: Type,
#[serde(rename = "invite_link")]
pub invite_link: String,
#[serde(rename = "invitations_enabled")]
pub invitations_enabled: bool,
#[serde(rename = "slug")]
pub slug: String,
#[serde(rename = "students_are_repo_admins")]
pub students_are_repo_admins: bool,
#[serde(rename = "feedback_pull_requests_enabled")]
pub feedback_pull_requests_enabled: bool,
#[serde(rename = "max_teams", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub max_teams: Option<Option<i32>>,
#[serde(rename = "max_members", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub max_members: Option<Option<i32>>,
#[serde(rename = "editor")]
pub editor: String,
#[serde(rename = "accepted")]
pub accepted: i32,
#[serde(rename = "submitted")]
pub submitted: i32,
#[serde(rename = "passing")]
pub passing: i32,
#[serde(rename = "language")]
pub language: String,
#[serde(rename = "deadline", deserialize_with = "Option::deserialize")]
pub deadline: Option<String>,
#[serde(rename = "classroom")]
pub classroom: Box<models::SimpleClassroom>,
}
impl SimpleClassroomAssignment {
pub fn new(id: i32, public_repo: bool, title: String, r#type: Type, invite_link: String, invitations_enabled: bool, slug: String, students_are_repo_admins: bool, feedback_pull_requests_enabled: bool, editor: String, accepted: i32, submitted: i32, passing: i32, language: String, deadline: Option<String>, classroom: models::SimpleClassroom) -> SimpleClassroomAssignment {
SimpleClassroomAssignment {
id,
public_repo,
title,
r#type,
invite_link,
invitations_enabled,
slug,
students_are_repo_admins,
feedback_pull_requests_enabled,
max_teams: None,
max_members: None,
editor,
accepted,
submitted,
passing,
language,
deadline,
classroom: Box::new(classroom),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "individual")]
Individual,
#[serde(rename = "group")]
Group,
}
impl Default for Type {
fn default() -> Type {
Self::Individual
}
}