/* Options:
Date: 2025-04-11 06:13:46
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: AddressSyncRequest.*
//ExcludeTypes: 
//DefaultImports: 
*/


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

export class PhoneEmailResponse
{
    public phone_home: string;
    public phone_cell: string;
    public phone_bus: string;
    public email: string;
    public start_date?: string;
    public end_date?: string;
    public added_by: string;
    public added_date?: string;
    public changed_by: string;
    public changed_date?: string;

    public constructor(init?: Partial<PhoneEmailResponse>) { (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 AddressResponse
{
    public responseStatus: ResponseStatus;
    public addr1: string;
    public addr2: string;
    public country: string;
    public country_code: string;
    public state: string;
    public city: string;
    public code: string;
    public start_date?: string;
    public end_date?: string;
    public added_by: string;
    public added_date?: string;
    public changed_by: string;
    public changed_date?: string;

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

export class AddressSyncResponse
{
    public responseStatus: ResponseStatus;
    public uuid: string;
    public regent_id: number;
    public sugar_address: AddressResponse;
    public sugar_phone_email: PhoneEmailResponse;
    public regis_address: AddressResponse;
    public regis_phone_email: PhoneEmailResponse;
    public re_address: AddressResponse;
    public re_phone_email: PhoneEmailResponse;
    public exists_in_sugar: boolean;
    public exists_in_re: boolean;
    public are_equal: boolean;
    public addr_are_equal: boolean;
    public city_are_equal: boolean;
    public state_are_equal: boolean;
    public country_are_equal: boolean;
    public code_are_equal: boolean;
    public phone_home_are_equal: boolean;
    public phone_cell_are_equal: boolean;
    public phone_bus_are_equal: boolean;
    public email_are_equal: boolean;

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

// @Route("/admissions/{uuid}/address/sync", "POST")
export class AddressSyncRequest implements IReturn<AddressSyncResponse>
{
    public uuid: string;

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