erp-construccion-backend/dist/modules/quality/services/inspection.service.d.ts

53 lines
2.4 KiB
TypeScript

/**
* InspectionService - Servicio de inspecciones de calidad
*
* Gestión de inspecciones con checklists y resultados.
*
* @module Quality
*/
import { Repository } from 'typeorm';
import { Inspection, InspectionStatus } from '../entities/inspection.entity';
import { InspectionResult } from '../entities/inspection-result.entity';
import { NonConformity } from '../entities/non-conformity.entity';
import { Checklist } from '../entities/checklist.entity';
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
export interface CreateInspectionDto {
checklistId: string;
loteId: string;
inspectionDate: Date;
inspectorId: string;
notes?: string;
}
export interface RecordResultDto {
checklistItemId: string;
result: 'passed' | 'failed' | 'not_applicable';
observations?: string;
photoUrl?: string;
}
export interface InspectionFilters {
checklistId?: string;
loteId?: string;
inspectorId?: string;
status?: InspectionStatus;
dateFrom?: Date;
dateTo?: Date;
}
export declare class InspectionService {
private readonly inspectionRepository;
private readonly resultRepository;
private readonly nonConformityRepository;
private readonly checklistRepository;
constructor(inspectionRepository: Repository<Inspection>, resultRepository: Repository<InspectionResult>, nonConformityRepository: Repository<NonConformity>, checklistRepository: Repository<Checklist>);
private generateInspectionNumber;
private generateNCNumber;
findWithFilters(ctx: ServiceContext, filters?: InspectionFilters, page?: number, limit?: number): Promise<PaginatedResult<Inspection>>;
findById(ctx: ServiceContext, id: string): Promise<Inspection | null>;
findWithDetails(ctx: ServiceContext, id: string): Promise<Inspection | null>;
create(ctx: ServiceContext, dto: CreateInspectionDto): Promise<Inspection>;
startInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
recordResult(ctx: ServiceContext, inspectionId: string, dto: RecordResultDto): Promise<InspectionResult>;
completeInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
approveInspection(ctx: ServiceContext, id: string): Promise<Inspection | null>;
rejectInspection(ctx: ServiceContext, id: string, reason: string): Promise<Inspection | null>;
}
//# sourceMappingURL=inspection.service.d.ts.map