/* Options: Date: 2024-12-29 04:25:44 SwiftVersion: 5.0 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://data.regent-college.edu //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: SectionAvailableForStudentRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/Sections/Available/{uuid}/Term/{reporting_term}/Section/{secUUID}", "POST") public class SectionAvailableForStudentRequest : IReturn, Codable { public typealias Return = SectionAvailableForStudentResponse public var transaction_uuid:String public var uuid:String public var secUUID:String public var reporting_term:String required public init(){} } public class SectionAvailableForStudentResponse : SectionResponse { public var uuid:String public var studentSectionUUID:String public var registered_amount:Double? public var is_full:Bool public var is_too_late:Bool public var is_too_early:Bool public var is_audit:Bool public var is_selected:Bool public var is_registered:Bool public var is_provisional:Bool public var is_missing_requisites:Bool public var is_completed:Bool public var maximum_credit_hours:Double? public var maximum_audit_hours:Double? public var can_retake:Bool public var is_credit_restricted:Bool public var is_audit_restricted:Bool public var is_oncampus_restricted_for_change:Bool public var is_online_restricted_for_change:Bool public var can_be_provisional:Bool public var can_be_dropped:Bool public var ruleMessages:[String] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case uuid case studentSectionUUID case registered_amount case is_full case is_too_late case is_too_early case is_audit case is_selected case is_registered case is_provisional case is_missing_requisites case is_completed case maximum_credit_hours case maximum_audit_hours case can_retake case is_credit_restricted case is_audit_restricted case is_oncampus_restricted_for_change case is_online_restricted_for_change case can_be_provisional case can_be_dropped case ruleMessages } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) uuid = try container.decodeIfPresent(String.self, forKey: .uuid) studentSectionUUID = try container.decodeIfPresent(String.self, forKey: .studentSectionUUID) registered_amount = try container.decodeIfPresent(Double.self, forKey: .registered_amount) is_full = try container.decodeIfPresent(Bool.self, forKey: .is_full) is_too_late = try container.decodeIfPresent(Bool.self, forKey: .is_too_late) is_too_early = try container.decodeIfPresent(Bool.self, forKey: .is_too_early) is_audit = try container.decodeIfPresent(Bool.self, forKey: .is_audit) is_selected = try container.decodeIfPresent(Bool.self, forKey: .is_selected) is_registered = try container.decodeIfPresent(Bool.self, forKey: .is_registered) is_provisional = try container.decodeIfPresent(Bool.self, forKey: .is_provisional) is_missing_requisites = try container.decodeIfPresent(Bool.self, forKey: .is_missing_requisites) is_completed = try container.decodeIfPresent(Bool.self, forKey: .is_completed) maximum_credit_hours = try container.decodeIfPresent(Double.self, forKey: .maximum_credit_hours) maximum_audit_hours = try container.decodeIfPresent(Double.self, forKey: .maximum_audit_hours) can_retake = try container.decodeIfPresent(Bool.self, forKey: .can_retake) is_credit_restricted = try container.decodeIfPresent(Bool.self, forKey: .is_credit_restricted) is_audit_restricted = try container.decodeIfPresent(Bool.self, forKey: .is_audit_restricted) is_oncampus_restricted_for_change = try container.decodeIfPresent(Bool.self, forKey: .is_oncampus_restricted_for_change) is_online_restricted_for_change = try container.decodeIfPresent(Bool.self, forKey: .is_online_restricted_for_change) can_be_provisional = try container.decodeIfPresent(Bool.self, forKey: .can_be_provisional) can_be_dropped = try container.decodeIfPresent(Bool.self, forKey: .can_be_dropped) ruleMessages = try container.decodeIfPresent([String].self, forKey: .ruleMessages) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if uuid != nil { try container.encode(uuid, forKey: .uuid) } if studentSectionUUID != nil { try container.encode(studentSectionUUID, forKey: .studentSectionUUID) } if registered_amount != nil { try container.encode(registered_amount, forKey: .registered_amount) } if is_full != nil { try container.encode(is_full, forKey: .is_full) } if is_too_late != nil { try container.encode(is_too_late, forKey: .is_too_late) } if is_too_early != nil { try container.encode(is_too_early, forKey: .is_too_early) } if is_audit != nil { try container.encode(is_audit, forKey: .is_audit) } if is_selected != nil { try container.encode(is_selected, forKey: .is_selected) } if is_registered != nil { try container.encode(is_registered, forKey: .is_registered) } if is_provisional != nil { try container.encode(is_provisional, forKey: .is_provisional) } if is_missing_requisites != nil { try container.encode(is_missing_requisites, forKey: .is_missing_requisites) } if is_completed != nil { try container.encode(is_completed, forKey: .is_completed) } if maximum_credit_hours != nil { try container.encode(maximum_credit_hours, forKey: .maximum_credit_hours) } if maximum_audit_hours != nil { try container.encode(maximum_audit_hours, forKey: .maximum_audit_hours) } if can_retake != nil { try container.encode(can_retake, forKey: .can_retake) } if is_credit_restricted != nil { try container.encode(is_credit_restricted, forKey: .is_credit_restricted) } if is_audit_restricted != nil { try container.encode(is_audit_restricted, forKey: .is_audit_restricted) } if is_oncampus_restricted_for_change != nil { try container.encode(is_oncampus_restricted_for_change, forKey: .is_oncampus_restricted_for_change) } if is_online_restricted_for_change != nil { try container.encode(is_online_restricted_for_change, forKey: .is_online_restricted_for_change) } if can_be_provisional != nil { try container.encode(can_be_provisional, forKey: .can_be_provisional) } if can_be_dropped != nil { try container.encode(can_be_dropped, forKey: .can_be_dropped) } if ruleMessages.count > 0 { try container.encode(ruleMessages, forKey: .ruleMessages) } } } public class SectionResponse : Codable { public var responseStatus:ResponseStatus public var secUUID:String public var course_name:String public var section_code:String public var course_title:String public var course_short_title:String public var course_description:String public var crosslist_description:String public var crosslist_course_name:String public var location_long_name:String public var room:String public var instructors:[InstructorResponse] = [] public var required_documents:[DocumentResponse] = [] public var start_date:Date? public var end_date:Date? public var first_meeting_date:Date? public var last_meeting_date:Date? public var meeting_days:String public var start_times:[String] = [] public var end_times:[String] = [] public var is_online_only:Bool public var is_weekend:Bool public var is_weekday:Bool public var is_evening:Bool public var is_waitlist:Bool public var has_special_requirements:Bool public var special_requirements:String public var is_unlisted:Bool public var credit_amounts:[Double] = [] public var audit_amounts:[Double] = [] public var audits_short_name:String public var audits_long_name:String public var credits_short_name:String public var credits_long_name:String public var distance_ed_materials:String public var prerequisites:String public var corequisites:String public var capacity:Int? public var flat_fee_amount:Double? public var additional_fee_amount:Double? public var registered_students:Int public var three_credit_plus:Int public var two_credit:Int public var one_credit:Int public var three_audit_plus:Int public var two_audit:Int public var one_audit:Int public var crosslist_registered_students:Int public var grades_received:Int public var crosslist_grades_received:Int public var registration_start_date:Date? public var registration_end_date:Date? public var add_start_date:Date? public var add_end_date:Date? public var drop_start_date:Date? public var drop_end_date:Date? public var grading_end_date:Date? public var term:String public var reporting_term:String public var reporting_year:Int public var current_status:String public var added_by:String public var added_date:Date? public var changed_by:String public var changed_date:Date? public var timestamp:Date required public init(){} }