erp-construccion-backend/dist/modules/hr/services/puesto.service.d.ts

41 lines
1.5 KiB
TypeScript

/**
* PuestoService - Servicio para catálogo de puestos
*
* Gestión de puestos de trabajo con CRUD básico.
*
* @module HR
*/
import { Repository } from 'typeorm';
import { Puesto } from '../entities/puesto.entity';
import { ServiceContext, PaginatedResult } from '../../../shared/services/base.service';
export interface CreatePuestoDto {
codigo: string;
nombre: string;
descripcion?: string;
nivelRiesgo?: string;
requiereCapacitacionEspecial?: boolean;
}
export interface UpdatePuestoDto {
nombre?: string;
descripcion?: string;
nivelRiesgo?: string;
requiereCapacitacionEspecial?: boolean;
activo?: boolean;
}
export interface PuestoFilters {
activo?: boolean;
nivelRiesgo?: string;
search?: string;
}
export declare class PuestoService {
private readonly repository;
constructor(repository: Repository<Puesto>);
findAll(ctx: ServiceContext, filters?: PuestoFilters, page?: number, limit?: number): Promise<PaginatedResult<Puesto>>;
findById(ctx: ServiceContext, id: string): Promise<Puesto | null>;
findByCodigo(ctx: ServiceContext, codigo: string): Promise<Puesto | null>;
create(ctx: ServiceContext, dto: CreatePuestoDto): Promise<Puesto>;
update(ctx: ServiceContext, id: string, dto: UpdatePuestoDto): Promise<Puesto | null>;
toggleActive(ctx: ServiceContext, id: string): Promise<Puesto | null>;
getActiveCount(ctx: ServiceContext): Promise<number>;
}
//# sourceMappingURL=puesto.service.d.ts.map