defmodule GitHub.Classroom.Assignment do
@moduledoc """
Provides struct and types for a Classroom.Assignment
"""
use GitHub.Encoder
@type simple :: %__MODULE__{
__info__: map,
accepted: integer,
classroom: GitHub.Classroom.simple(),
deadline: DateTime.t() | nil,
editor: String.t(),
feedback_pull_requests_enabled: boolean,
id: integer,
invitations_enabled: boolean,
invite_link: String.t(),
language: String.t(),
max_members: integer | nil,
max_teams: integer | nil,
passing: integer,
public_repo: boolean,
slug: String.t(),
students_are_repo_admins: boolean,
submitted: integer,
title: String.t(),
type: String.t()
}
@type t :: %__MODULE__{
__info__: map,
accepted: integer,
classroom: GitHub.Classroom.t(),
deadline: DateTime.t() | nil,
editor: String.t(),
feedback_pull_requests_enabled: boolean,
id: integer,
invitations_enabled: boolean,
invite_link: String.t(),
language: String.t(),
max_members: integer | nil,
max_teams: integer | nil,
passing: integer,
public_repo: boolean,
slug: String.t(),
starter_code_repository: GitHub.Classroom.Repository.simple(),
students_are_repo_admins: boolean,
submitted: integer,
title: String.t(),
type: String.t()
}
defstruct [
:__info__,
:accepted,
:classroom,
:deadline,
:editor,
:feedback_pull_requests_enabled,
:id,
:invitations_enabled,
:invite_link,
:language,
:max_members,
:max_teams,
:passing,
:public_repo,
:slug,
:starter_code_repository,
:students_are_repo_admins,
:submitted,
:title,
:type
]
@doc false
@spec __fields__(atom) :: keyword
def __fields__(type \\ :t)
def __fields__(:simple) do
[
accepted: :integer,
classroom: {GitHub.Classroom, :simple},
deadline: {:union, [{:string, :date_time}, :null]},
editor: {:string, :generic},
feedback_pull_requests_enabled: :boolean,
id: :integer,
invitations_enabled: :boolean,
invite_link: {:string, :generic},
language: {:string, :generic},
max_members: {:union, [:integer, :null]},
max_teams: {:union, [:integer, :null]},
passing: :integer,
public_repo: :boolean,
slug: {:string, :generic},
students_are_repo_admins: :boolean,
submitted: :integer,
title: {:string, :generic},
type: {:enum, ["individual", "group"]}
]
end
def __fields__(:t) do
[
accepted: :integer,
classroom: {GitHub.Classroom, :t},
deadline: {:union, [{:string, :date_time}, :null]},
editor: {:string, :generic},
feedback_pull_requests_enabled: :boolean,
id: :integer,
invitations_enabled: :boolean,
invite_link: {:string, :generic},
language: {:string, :generic},
max_members: {:union, [:integer, :null]},
max_teams: {:union, [:integer, :null]},
passing: :integer,
public_repo: :boolean,
slug: {:string, :generic},
starter_code_repository: {GitHub.Classroom.Repository, :simple},
students_are_repo_admins: :boolean,
submitted: :integer,
title: {:string, :generic},
type: {:enum, ["individual", "group"]}
]
end
end