UNPKG

@experts_hub/shared

Version:

Shared DTOs, interfaces, and utilities for experts hub applications

55 lines (54 loc) 1.61 kB
import { BaseEntity } from "./base.entity"; import { User } from "./user.entity"; import { Job } from "./job.entity"; import { TimesheetLine } from "./timesheet-line.entity"; import { EscrowWalletTransaction } from "./escrow-wallet-transaction.entity"; import { Hiring } from "./hiring.entity"; export declare enum InvoiceTypeEnum { WEEKLY = "WEEKLY", MONTHLY = "MONTHLY", FTE = "FTE" } export declare enum InvoiceStatusEnum { SUBMITTED = "SUBMITTED", UNDER_REVIEW = "UNDER_REVIEW", APPROVED = "APPROVED", REJECTED = "REJECTED" } export declare enum InvoicePaymentStatusEnum { PENDING = "PENDING", OVERDUE = "OVERDUE", INTRANSACTION = "INTRANSACTION", PAID = "PAID", REFUNDED = "REFUNDED" } export declare class Invoice extends BaseEntity { timesheetLineId: number; timesheetLine: TimesheetLine; jobId: number; job: Job; clientId: number; client: User; freelancerId: number; freelancer: User; invoiceUniqueId: string; issuedAt: Date; dueAt: Date; billingCycleFrom: Date; billingCycleTo: Date; billingHours: string; hourlyRate: string; billingAmount: string; billingMarkUpAmount: string; billingMarkUpPercentage: string; freelancerBillingAmount: string; freelancerCommissionPercentage: string; freelancerCommissionAmount: string; invoiceType: InvoiceTypeEnum; status: InvoiceStatusEnum; paymentStatus: InvoicePaymentStatusEnum; clientInvoiceUrl: string; freelancerInvoiceUrl: string; escrowWalletTransaction?: EscrowWalletTransaction; hiring?: Hiring; }