/* Options: Date: 2024-10-06 10:25:35 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: ProvisionalRegistrationAuthorizeRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/Registration/Provisional/{student_section_uuid}/Authorize", "POST") public class ProvisionalRegistrationAuthorizeRequest : IReturn, Codable { public typealias Return = AddRegistrationsResponse public var student_section_uuid:String public var authorizing_uuid:String required public init(){} } public class AddRegistrationsResponse : InvoiceResponse { public var transaction_uuid:String public var studentSectionInvoiceItems:[StudentSectionInvoiceItemResponse] = [] public var sectionRates:[String:[SectionRateWithAmountResponse]] = [:] public var creditTuitionRate:InvoiceItemAdminResponse public var auditTuitionRate:InvoiceItemAdminResponse public var studentAge:Int? public var studentAgeAtEarliestSectionStartDate:Int? public var isRegentGrad:Bool public var isOnlyUnclassified:Bool public var canRegisterForAuditInTerm:Bool public var canRegisterForCreditInTerm:Bool public var messages:[String] = [] public var currentTermAuditHours:Double public var currentTermCreditHours:Double public var totalCreditHours:Double public var availableInvoiceItems:[InvoiceItemAdminResponse] = [] public var availableBenefits:[BenefitResponse] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case transaction_uuid case studentSectionInvoiceItems case sectionRates case creditTuitionRate case auditTuitionRate case studentAge case studentAgeAtEarliestSectionStartDate case isRegentGrad case isOnlyUnclassified case canRegisterForAuditInTerm case canRegisterForCreditInTerm case messages case currentTermAuditHours case currentTermCreditHours case totalCreditHours case availableInvoiceItems case availableBenefits } 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) ?? [] sectionRates = try container.decodeIfPresent([String:[SectionRateWithAmountResponse]].self, forKey: .sectionRates) ?? [:] creditTuitionRate = try container.decodeIfPresent(InvoiceItemAdminResponse.self, forKey: .creditTuitionRate) auditTuitionRate = try container.decodeIfPresent(InvoiceItemAdminResponse.self, forKey: .auditTuitionRate) studentAge = try container.decodeIfPresent(Int.self, forKey: .studentAge) studentAgeAtEarliestSectionStartDate = try container.decodeIfPresent(Int.self, forKey: .studentAgeAtEarliestSectionStartDate) isRegentGrad = try container.decodeIfPresent(Bool.self, forKey: .isRegentGrad) isOnlyUnclassified = try container.decodeIfPresent(Bool.self, forKey: .isOnlyUnclassified) canRegisterForAuditInTerm = try container.decodeIfPresent(Bool.self, forKey: .canRegisterForAuditInTerm) canRegisterForCreditInTerm = try container.decodeIfPresent(Bool.self, forKey: .canRegisterForCreditInTerm) messages = try container.decodeIfPresent([String].self, forKey: .messages) ?? [] currentTermAuditHours = try container.decodeIfPresent(Double.self, forKey: .currentTermAuditHours) currentTermCreditHours = try container.decodeIfPresent(Double.self, forKey: .currentTermCreditHours) totalCreditHours = try container.decodeIfPresent(Double.self, forKey: .totalCreditHours) availableInvoiceItems = try container.decodeIfPresent([InvoiceItemAdminResponse].self, forKey: .availableInvoiceItems) ?? [] availableBenefits = try container.decodeIfPresent([BenefitResponse].self, forKey: .availableBenefits) ?? [] } 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 sectionRates.count > 0 { try container.encode(sectionRates, forKey: .sectionRates) } if creditTuitionRate != nil { try container.encode(creditTuitionRate, forKey: .creditTuitionRate) } if auditTuitionRate != nil { try container.encode(auditTuitionRate, forKey: .auditTuitionRate) } if studentAge != nil { try container.encode(studentAge, forKey: .studentAge) } if studentAgeAtEarliestSectionStartDate != nil { try container.encode(studentAgeAtEarliestSectionStartDate, forKey: .studentAgeAtEarliestSectionStartDate) } if isRegentGrad != nil { try container.encode(isRegentGrad, forKey: .isRegentGrad) } if isOnlyUnclassified != nil { try container.encode(isOnlyUnclassified, forKey: .isOnlyUnclassified) } if canRegisterForAuditInTerm != nil { try container.encode(canRegisterForAuditInTerm, forKey: .canRegisterForAuditInTerm) } if canRegisterForCreditInTerm != nil { try container.encode(canRegisterForCreditInTerm, forKey: .canRegisterForCreditInTerm) } if messages.count > 0 { try container.encode(messages, forKey: .messages) } if currentTermAuditHours != nil { try container.encode(currentTermAuditHours, forKey: .currentTermAuditHours) } if currentTermCreditHours != nil { try container.encode(currentTermCreditHours, forKey: .currentTermCreditHours) } if totalCreditHours != nil { try container.encode(totalCreditHours, forKey: .totalCreditHours) } if availableInvoiceItems.count > 0 { try container.encode(availableInvoiceItems, forKey: .availableInvoiceItems) } if availableBenefits.count > 0 { try container.encode(availableBenefits, forKey: .availableBenefits) } } } public class InvoiceItemAdminResponse : 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 is_required:Bool public var is_optional:Bool public var charge:Double? public var credit:Double? required public init(){} } 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 BenefitResponse : Codable { public var rate_id:Int public var rate_code:String public var rate_description:String public var percentage_rate:Double public var is_optional:Bool public var is_required:Bool required public init(){} } 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(){} }