/* Options:
Date: 2025-04-12 15:47:04
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: FinancialAidApplicationsRequest.*
//ExcludeTypes: 
//DefaultImports: 
*/


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

// @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 FinancialAidApplicationResponse
{
    public responseStatus: ResponseStatus;
    public start_term: string;
    public end_term: string;
    public number_of_terms?: number;
    public regent_id: number;
    public uuid: string;
    public application_uuid: string;
    public awards: FinancialAidApplicationAwardResponse[];
    public previous_awards: FinancialAidApplicationAwardResponse[];
    public program: string;
    public gender: string;
    public first_name: string;
    public last_name: string;
    public email: string;
    public citizenship: string;
    public citizenship_other: string;
    public permanent_resident: string;
    public ethnicity: string;
    public marital_status: string;
    public dob?: string;
    public addr1: string;
    public addr2: string;
    public city: string;
    public state: string;
    public country: string;
    public code: string;
    public denomination: string;
    public undergrad_gpa?: number;
    public regent_gpa?: number;
    public current_attempted_credits?: number;
    public first_term_admitted: string;
    public current_attempted_and_transferred_credits?: number;
    public current_award_term_attempted_credits?: number;
    public number_of_children?: number;
    public financial_assets?: number;
    public spouse_income?: number;
    public employment_years?: number;
    public employment_description: string;
    public vocational_experience_json: string;
    public vocational_direction_json: string;
    public occupation_after_the_program_json: string;
    public area_of_study_json: string;
    public need_score: number;
    public merit_score: number;
    public score: number;
    public is_mature: boolean;
    public is_nonaccredited: boolean;
    public award_per_term?: number;
    public amount_awarded?: number;
    public oncampus_tuition_owing_in_term?: number;
    public online_tuition_owing_in_term?: number;
    public audit_and_fees_owing_in_term?: number;
    public amount_offered?: number;
    public total_amount_awarded?: number;
    public comments: string;
    public current_status: string;
    public cannot_apply_again: boolean;
    public current_status_date?: string;
    public started_date?: string;
    public started_by: string;
    public submitted_date?: string;
    public submitted_by: string;
    public changed_date?: string;
    public changed_by: string;

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

export class FinancialAidApplicationsResponse
{
    public responseStatus: ResponseStatus;
    public applications: FinancialAidApplicationResponse[];

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

// @Route("/Finance/FinancialAid/Applications", "POST")
export class FinancialAidApplicationsRequest implements IReturn<FinancialAidApplicationsResponse>
{
    public start_term: string;
    public continuing_term: string;
    public issued_in_term: string;
    public available_in_term: string;
    public done_in_term: string;
    public no_awards_in_response: boolean;

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