/* Options: Date: 2024-12-29 02:09:53 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: UnauthenticatedRegistrationInProgressReviewRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/Registration/InProgressForUnauthenticatedPerson/{uuid}/Term/{reporting_term}/Review/{transaction_uuid}", "POST") public class UnauthenticatedRegistrationInProgressReviewRequest : IReturn, Codable { public typealias Return = StudentSectionInvoiceResponse public var transaction_uuid:String public var uuid:String public var reporting_term:String public var rates_opted_in:[Int] = [] public var appliedForDEReentryBenefit:Bool public var appliedForSpousalAuditBenefit:Bool public var appliedForSpousalCreditBenefit:Bool required public init(){} } public class StudentSectionInvoiceResponse : InvoiceResponse { public var transaction_uuid:String public var studentSectionInvoiceItems:[StudentSectionInvoiceItemResponse] = [] public var otherInvoiceItems:[InvoiceItemResponse] = [] public var optedInInvoiceItems:[InvoiceItemResponse] = [] public var optionalInvoiceItems:[InvoiceItemResponse] = [] public var appliedForSpousalAuditBenefit:Bool public var appliedForSpousalCreditBenefit:Bool public var appliedForDEReentryBenefit:Bool public var dropRefundRate:Double? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case transaction_uuid case studentSectionInvoiceItems case otherInvoiceItems case optedInInvoiceItems case optionalInvoiceItems case appliedForSpousalAuditBenefit case appliedForSpousalCreditBenefit case appliedForDEReentryBenefit case dropRefundRate } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) transaction_uuid = try container.decodeIfPresent(String.self, forKey: .transaction_uuid) studentSectionInvoiceItems = try container.decodeIfPresent([StudentSectionInvoiceItemResponse].self, forKey: .studentSectionInvoiceItems) ?? [] otherInvoiceItems = try container.decodeIfPresent([InvoiceItemResponse].self, forKey: .otherInvoiceItems) ?? [] optedInInvoiceItems = try container.decodeIfPresent([InvoiceItemResponse].self, forKey: .optedInInvoiceItems) ?? [] optionalInvoiceItems = try container.decodeIfPresent([InvoiceItemResponse].self, forKey: .optionalInvoiceItems) ?? [] appliedForSpousalAuditBenefit = try container.decodeIfPresent(Bool.self, forKey: .appliedForSpousalAuditBenefit) appliedForSpousalCreditBenefit = try container.decodeIfPresent(Bool.self, forKey: .appliedForSpousalCreditBenefit) appliedForDEReentryBenefit = try container.decodeIfPresent(Bool.self, forKey: .appliedForDEReentryBenefit) dropRefundRate = try container.decodeIfPresent(Double.self, forKey: .dropRefundRate) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if transaction_uuid != nil { try container.encode(transaction_uuid, forKey: .transaction_uuid) } if studentSectionInvoiceItems.count > 0 { try container.encode(studentSectionInvoiceItems, forKey: .studentSectionInvoiceItems) } if otherInvoiceItems.count > 0 { try container.encode(otherInvoiceItems, forKey: .otherInvoiceItems) } if optedInInvoiceItems.count > 0 { try container.encode(optedInInvoiceItems, forKey: .optedInInvoiceItems) } if optionalInvoiceItems.count > 0 { try container.encode(optionalInvoiceItems, forKey: .optionalInvoiceItems) } if appliedForSpousalAuditBenefit != nil { try container.encode(appliedForSpousalAuditBenefit, forKey: .appliedForSpousalAuditBenefit) } if appliedForSpousalCreditBenefit != nil { try container.encode(appliedForSpousalCreditBenefit, forKey: .appliedForSpousalCreditBenefit) } if appliedForDEReentryBenefit != nil { try container.encode(appliedForDEReentryBenefit, forKey: .appliedForDEReentryBenefit) } if dropRefundRate != nil { try container.encode(dropRefundRate, forKey: .dropRefundRate) } } } public class StudentSectionInvoiceItemResponse : InvoiceItemResponse { public var studentSection:StudentSectionResponse required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case studentSection } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) studentSection = try container.decodeIfPresent(StudentSectionResponse.self, forKey: .studentSection) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if studentSection != nil { try container.encode(studentSection, forKey: .studentSection) } } } public class InvoiceResponse : Codable { public var responseStatus:ResponseStatus public var invoiceUUID:String public var regent_id:Int public var uuid:String public var reporting_term:String public var total_charges:Double? public var total_credits:Double? public var current_status:String public var timestamp:Date required public init(){} } public class InvoiceItemResponse : Codable { public var responseStatus:ResponseStatus public var invoiceItemUUID:String public var rate_id:Int public var rate_code:String public var rate_description:String public var charge:Double? public var credit:Double? required public init(){} } public class StudentSectionResponse : SectionResponse { public var studentSectionUUID:String public var registered_amount:Double public var is_provisional:Bool public var is_audit:Bool required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case studentSectionUUID case registered_amount case is_provisional case is_audit } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) studentSectionUUID = try container.decodeIfPresent(String.self, forKey: .studentSectionUUID) registered_amount = try container.decodeIfPresent(Double.self, forKey: .registered_amount) is_provisional = try container.decodeIfPresent(Bool.self, forKey: .is_provisional) is_audit = try container.decodeIfPresent(Bool.self, forKey: .is_audit) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if studentSectionUUID != nil { try container.encode(studentSectionUUID, forKey: .studentSectionUUID) } if registered_amount != nil { try container.encode(registered_amount, forKey: .registered_amount) } if is_provisional != nil { try container.encode(is_provisional, forKey: .is_provisional) } if is_audit != nil { try container.encode(is_audit, forKey: .is_audit) } } } 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(){} }