///
///
import { DocumentFile, DocumentInfo, DocumentRequestResult } from './document.interface';
export interface BussinessFile {
file: Buffer;
name?: string;
documentType: string;
subCategoryId?: number;
}
export interface SubmitBusinessDocumentsRequest {
miniAppId: string;
businessFiles?: BussinessFile[];
additionalFiles?: DocumentFile[];
documentFiles?: DocumentInfo[];
}
export interface SubmitBusinessDocumentsResponse {
error: number;
message: string;
data?: {
businessResults?: DocumentRequestResult;
additionalResults?: DocumentRequestResult;
};
}
/**
* Request to upload a document file to CDN
* The uploaded file can be used in subsequent document submission requests
*/
export interface UploadDocumentFileRequest {
/** The Mini App ID */
miniAppId: string;
/** Document file content as Buffer */
file: Buffer;
/** Original file name (e.g., "business-license.pdf") */
fileName: string;
/** Optional: Document type identifier */
documentType?: string;
/** Optional: Related sub-category ID */
subCategoryId?: number;
}
/**
* Response from upload document file API
* Returns a fileId to be used in document submission requests
*/
export interface UploadDocumentFileResponse {
error: number;
message: string;
/** CDN ID for the uploaded file - use this in submitBusinessDocumentRequest */
fileId?: string;
/** Original file name */
fileName?: string;
}
/** Document type for business document submission */
export type BusinessDocumentType = 'BUSINESS_LICENSE' | 'ADDITIONAL_LICENSE';
/**
* Business document item for JSON-based submission
* Uses fileId from uploadDocumentFile response
*/
export interface BusinessDocumentItem {
/** CDN file ID from uploadDocumentFile response */
fileId: string;
/** Original file name */
fileName: string;
/** Document type: BUSINESS_LICENSE or ADDITIONAL_LICENSE */
type: BusinessDocumentType;
/** Document type name (e.g., "Giấy phép kinh doanh") */
documentType: string;
/** Optional: Document type ID from getPermits response */
documentTypeId?: number;
/** Required for BUSINESS_LICENSE type */
subCategoryId?: number;
}
/**
* Request to submit business documents using JSON format
* Files must be uploaded via uploadDocumentFile first
*/
export interface SubmitBusinessDocumentRequest {
/** The Mini App ID */
miniAppId: string;
/** Array of business documents to submit */
businessDocuments: BusinessDocumentItem[];
}
/**
* Document result item from submission
*/
export interface BusinessDocumentResult {
/** CDN ID of the document */
cdnId: string;
/** File name */
name: string;
/** Document type (BUSINESS_LICENSE or ADDITIONAL_LICENSE) */
type: BusinessDocumentType;
/** Whether this is a newly uploaded document */
isNew: boolean;
}
/**
* Response from submit business document request
*/
export interface SubmitBusinessDocumentResponse {
error: number;
message: string;
data?: {
/** Results for business license documents */
businessResults?: {
documentRequestId: number;
documents: BusinessDocumentResult[];
};
/** Results for additional license documents */
additionalResults?: {
documentRequestId: number;
documents: BusinessDocumentResult[];
};
};
}