/** * 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