erp-construccion-backend/dist/modules/contracts/entities/contract.entity.d.ts

65 lines
1.8 KiB
TypeScript

/**
* Contract Entity
* Contratos con clientes y subcontratistas
*
* @module Contracts
* @table contracts.contracts
*/
import { Tenant } from '../../core/entities/tenant.entity';
import { User } from '../../core/entities/user.entity';
import { ContractAddendum } from './contract-addendum.entity';
export type ContractType = 'client' | 'subcontractor';
export type ContractStatus = 'draft' | 'review' | 'approved' | 'active' | 'completed' | 'terminated';
export type ClientContractType = 'desarrollo' | 'llave_en_mano' | 'administracion';
export declare class Contract {
id: string;
tenantId: string;
projectId: string;
fraccionamientoId: string;
contractNumber: string;
contractType: ContractType;
clientContractType: ClientContractType;
name: string;
description: string;
clientName: string;
clientRfc: string;
clientAddress: string;
subcontractorId: string;
specialty: string;
startDate: Date;
endDate: Date;
contractAmount: number;
currency: string;
paymentTerms: string;
retentionPercentage: number;
advancePercentage: number;
status: ContractStatus;
submittedAt: Date;
submittedById: string;
legalApprovedAt: Date;
legalApprovedById: string;
approvedAt: Date;
approvedById: string;
signedAt: Date;
terminatedAt: Date;
terminationReason: string;
documentUrl: string;
signedDocumentUrl: string;
progressPercentage: number;
invoicedAmount: number;
paidAmount: number;
notes: string;
createdAt: Date;
createdById: string;
updatedAt: Date;
updatedById: string;
deletedAt: Date;
deletedById: string;
get remainingAmount(): number;
get isExpiring(): boolean;
tenant: Tenant;
createdBy: User;
approvedBy: User;
addendums: ContractAddendum[];
}
//# sourceMappingURL=contract.entity.d.ts.map