@experts_hub/shared
Version:
Shared DTOs, interfaces, and utilities for experts hub applications
55 lines (54 loc) • 1.61 kB
TypeScript
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;
}