/* Options:
Date: 2025-04-12 05:17:21
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: FinancePayableRequest.*
//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 FinancePayableResponse
{
    public cheque_id: string;
    public invoice_id: string;
    public batch_id: string;
    public transaction_batch_id: string;
    public total_amount: number;
    public unapplied_amount: number;
    public description: string;
    public vendor_id: string;
    public vendor_name: string;
    public doc_type: string;
    public is_posted: boolean;
    public is_paid: boolean;
    public is_voided: boolean;
    public is_reimbursed: boolean;
    public doc_date?: string;
    public post_date?: string;
    public cheque_date?: string;
    public due_date?: string;
    public responseStatus: ResponseStatus;

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

// @Route("/Finance/Payable", "POST")
export class FinancePayableRequest implements IReturn<FinancePayableResponse>
{
    public cheque_id: string;
    public invoice_id: string;

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