export type BorrowingPrelist = { _id: string; totalAssets: number; group: { _id: string; name: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; isManager: boolean; }; export type BorrowingRequest = { _id: string; asset: string; borrower: { _id: string; fullName: string; key: number; }; assetImageMedium: string; assetImageBig: string; assetImageSmall: string; name: { _id: string; nameWithSequence: string; name: string; key: number; }; brand: { _id: string; name: string; key: number; }; model: { _id: string; name: string; key: number; }; qr: boolean; rfid: boolean; group: { _id: string; name: string; key: number; }; tagType: string; isManager: boolean; children?: BorrowingRequestFormData[]; hasChildren?: boolean; }; export type BorrowingTransaction = { _id: string; transactionId: string; status: string; group: { _id: string; name: string; key: string; }; manager: { _id: string; fullName: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; updatedAt: Date | string; lastUpdate?: Date | string; createdAt: Date | string; totalAssets: number; isEmailSent: boolean; isConfirmed: boolean; confirmationEmail: string; isManager: boolean; approvalUnderway: boolean; }; export type BorrowingTransactionDetail = { manager: { _id: string; fullName: string; key: number; }; group: { _id: string; name: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; _id: string; totalAssets: number; transactionId: string; status: string; desc: string; curApprovalLevel: number; isVerified: boolean; confirmationEmail: string; confirmationEmailConfirmed: boolean; confirmationEmailSentAt: Date | string; confirmationEmailExpiredAt: Date | string; updatedAt: Date | string; }; export type BorrowingTransactionRequest = { _id: string; manager: { _id: string; fullName: string; key: number; }; group: { _id: string; name: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; asset: string; status: string; isReportDone: boolean; isUnderRepair: boolean; isUnderTracking: boolean; duration: number; createdAt: Date | string; updatedAt: Date | string; name: { _id: string; nameWithSequence: string; name: string; key: number; }; brand: { _id: string; name: string; key: number; }; model: { _id: string; name: string; key: number; }; qr: boolean; rfid: boolean; tagType: string; assetImageMedium: string; assetImageBig: string; assetImageSmall: string; remainingDay: number; dueDate: Date | string; dueDateInt?: number; returnDate: Date | string; transactionId: string; isManager: boolean; children?: BorrowingRequestFormData[]; }; export type BorrowingRequestFormData = BorrowingRequest & { duration: number; action: 'Add' | 'Remove' | 'Update'; isVerified?: boolean; }; export type BorrowingRequestHandover = BorrowingTransactionRequest & { isVerified: boolean; serialNumber?: string; }; export type BorrowingTransactionScan = { _id: string; }; export type BorrowingHistoryByTransaction = BorrowingTransaction & { transaction: string; }; export type BorrowingHistoryByAsset = { _id: string; asset: string; borrower: { _id: string; fullName: string; key: number; }; manager: { _id: string; fullName: string; key: number; }; status: string; assetImageMedium: string; assetImageBig: string; assetImageSmall: string; name: { _id: string; nameWithSequence: string; name: string; key: number; }; brand: { _id: string; name: string; key: number; }; model: { _id: string; name: string; key: number; }; qr: boolean; rfid: boolean; group: { _id: string; name: string; key: number; }; duration: number; createdAt: Date | string; dueDate: Date | string; returnDate: Date | string; }; export type BorrowingTransactionRequestFormData = BorrowingTransactionRequest & { notes?: string; isApproved?: boolean; duration?: number; approvedDuration?: number; }; export type BorrowingBorrowedByAsset = { _id: string; manager: { _id: string; fullName: string; key: number; }; group: { _id: string; name: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; asset: string; status: string; isReportDone: boolean; isUnderRepair: boolean; isUnderTracking: boolean; duration: number; createdAt: Date | string; updatedAt: Date | string; dueDate: Date | string; name: { _id: string; nameWithSequence: string; name: string; key: number; aliasCode: string; }; brand: { _id: string; name: string; key: number; }; model: { _id: string; name: string; key: number; }; qr: boolean; rfid: boolean; tagType: string; remainingDay: number; assetImageMedium: string; assetImageBig: string; assetImageSmall: string; transactionId: string; isManager: boolean; children?: BorrowingRequestFormData[]; }; export type BorrowingBorrowedByBorrower = { borrower: { _id: string; fullName: string; key: number; }; group: { _id: string; name: string; key: number; }; totalAsset: number; }; export type BorrowingBorrowedReturnAsset = BorrowingTransactionRequest & { isVerified: boolean; }; export type BorrowingTransactionLog = { request: { _id: string; transaction: string; transactionId: string; manager: { _id: string; fullName: string; key: number; }; group: { _id: string; name: string; key: number; }; borrower: { _id: string; fullName: string; key: number; }; asset: string; assetName: { _id: string; nameWithSequence: string; name: string; key: number; aliasCode: string; }; assetBrand: { _id: string; name: string; key: 3; }; assetModel: { _id: string; name: string; key: 3; }; status: string; assetTagType: string; assetQr: boolean; assetRfid: boolean; isOverdue: boolean; isVerified: boolean; isReportDone: boolean; duration: number; approvalRound: number; createdAt: Date | string; updatedAt: Date | string; dueDate: Date | string; assetImageMedium: string; assetImageBig: string; assetImageSmall: string; assetId: string; } & BorrowingBorrowedByAsset; logs: TransactionLog[]; }; export type TransactionLog = { _id: string; type: string; transaction: string; transactionId: string; action: string; userId: string; userFullName: string; borrower: string; group: string; detail: Record; createdAt: string; updatedAt: string; };