/* Options:
Date: 2025-04-12 07:25:43
Version: 8.22
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://data.regent-college.edu

//GlobalNamespace: 
//MakePropertiesOptional: False
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: UnauthenticatedRegistrationsRequest.*
//ExcludeTypes: 
//DefaultImports: 
*/


export interface IReturn<T>
{
    createResponse(): T;
}

export class UnauthenticatedStudentSectionRegistrationResponse
{
    public section_uuid: string;
    public student_section_uuid: string;
    public course_name: string;
    public section_code: string;
    public course_title: string;
    public amount: number;
    public is_oncampus: boolean;
    public is_audit: boolean;
    public is_provisional: boolean;
    public is_missing_requisites: boolean;
    public is_other_restriction: boolean;
    public added_date?: string;
    public added_by_person_id?: number;
    public changed_date?: string;
    public changed_by_person_id?: number;

    public constructor(init?: Partial<UnauthenticatedStudentSectionRegistrationResponse>) { (Object as any).assign(this, init); }
}

// @DataContract
export class ResponseStatus
{
    // @DataMember(Order=1)
    public errorCode: string;

    // @DataMember(Order=2)
    public message: string;

    // @DataMember(Order=3)
    public stackTrace: string;

    // @DataMember(Order=4)
    public errors: ResponseError[];

    // @DataMember(Order=5)
    public meta: { [index: string]: string; };

    public constructor(init?: Partial<ResponseStatus>) { (Object as any).assign(this, init); }
}

export class UnauthenticatedPersonResponse
{
    public responseStatus: ResponseStatus;
    public regent_id?: number;
    public reporting_term: string;
    public survey: string;
    public friend_referral: string;
    public other_referral: string;
    public is_returning: boolean;
    public is_applying: boolean;
    public is_landlord: boolean;
    public postsecondary_education_level: number;
    public uuid: string;
    public regent_login: string;
    public first_name: string;
    public middle_name: string;
    public last_name: string;
    public preferred_name: string;
    public birth_name: string;
    public spouse_name: string;
    public addr1: string;
    public addr2: string;
    public country: string;
    public state: string;
    public city: string;
    public code: string;
    public phone_home: string;
    public phone_cell: string;
    public phone_bus: string;
    public email: string;
    public prefix: string;
    public dob?: string;
    public citizenship: string;
    public citizenship_other: string;
    public permanent_resident: string;
    public denomination: string;
    public occupation: string;
    public ethnicity: string;
    public gender: string;
    public marital_status: string;
    public deceased_date?: string;
    public added_by: string;
    public added_date?: string;
    public last_changed_by: string;
    public last_changed_date?: string;
    public addr_last_changed_by: string;
    public addr_last_changed_date?: string;
    public timestamp: string;
    public submitted_datetime?: string;
    public submitted_by_unauthenticated_person_id?: number;
    public authorized_datetime?: string;
    public authorized_by_person_id?: number;
    public archived_datetime?: string;
    public archived_by_person_id?: number;

    public constructor(init?: Partial<UnauthenticatedPersonResponse>) { (Object as any).assign(this, init); }
}

export class UnauthenticatedRegistrationTransactionResponse
{
    public responseStatus: ResponseStatus;
    public transaction_uuid: string;
    public notes_json: string;
    public credit_hours: number;
    public audit_hours: number;
    public started_datetime: string;
    public archived_datetime?: string;
    public submitted_datetime?: string;
    public authorized_datetime?: string;
    public person: UnauthenticatedPersonResponse;
    public registrations: UnauthenticatedStudentSectionRegistrationResponse[];

    public constructor(init?: Partial<UnauthenticatedRegistrationTransactionResponse>) { (Object as any).assign(this, init); }
}

// @Route("/Registration/Unauthenticated/{reporting_term}", "POST")
export class UnauthenticatedRegistrationsRequest implements IReturn<UnauthenticatedRegistrationTransactionResponse[]>
{
    public reporting_term: string;
    public is_submitted: boolean;
    public is_authorized: boolean;
    public is_archived: boolean;

    public constructor(init?: Partial<UnauthenticatedRegistrationsRequest>) { (Object as any).assign(this, init); }
    public getTypeName() { return 'UnauthenticatedRegistrationsRequest'; }
    public getMethod() { return 'POST'; }
    public createResponse() { return new Array<UnauthenticatedRegistrationTransactionResponse>(); }
}