(* Options:
Date: 2025-04-14 03:26:56
Version: 8.22
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://data.regent-college.edu

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: CourseRequirementsReportingTermRequest.*
//ExcludeTypes: 
//InitializeCollections: True
//AddNamespaces: 
*)

namespace regis.ClassLibrary.Requests

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type CourseRequirementResponse() = 
        member val course_id:Int32 = new Int32() with get,set
        member val required_course_id:Int32 = new Int32() with get,set
        member val requirement_group:Int32 = new Int32() with get,set
        member val is_prerequisite:Boolean = new Boolean() with get,set
        member val is_corequisite:Boolean = new Boolean() with get,set
        member val timestamp:DateTime = new DateTime() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type ResponseStatus() = 
        [<DataMember(Order=1)>]
        member val ErrorCode:String = null with get,set

        [<DataMember(Order=2)>]
        member val Message:String = null with get,set

        [<DataMember(Order=3)>]
        member val StackTrace:String = null with get,set

        [<DataMember(Order=4)>]
        member val Errors:ResizeArray<ResponseError> = new ResizeArray<ResponseError>() with get,set

        [<DataMember(Order=5)>]
        member val Meta:Dictionary<String, String> = new Dictionary<String, String>() with get,set

    [<AllowNullLiteral>]
    type CourseResponse() = 
        member val id:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val course_name:String = null with get,set
        member val title:String = null with get,set
        member val pretty_title:String = null with get,set
        member val course_description:String = null with get,set
        member val is_active:Boolean = new Boolean() with get,set
        member val added_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val added_by:String = null with get,set
        member val changed_date:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val changed_by:String = null with get,set
        member val timestamp:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type CourseRequirementsResponse() = 
        member val ResponseStatus:ResponseStatus = null with get,set
        member val course_id:Int32 = new Int32() with get,set
        member val requirements:ResizeArray<CourseRequirementResponse> = new ResizeArray<CourseRequirementResponse>() with get,set
        member val courses:ResizeArray<CourseResponse> = new ResizeArray<CourseResponse>() with get,set

    [<Route("/Course/ReportingTerm/{reporting_term}/Requirements", "POST")>]
    [<AllowNullLiteral>]
    type CourseRequirementsReportingTermRequest() = 
        interface IReturn<ResizeArray<CourseRequirementsResponse>>
        member val reporting_term:String = null with get,set