41 lines
1.5 KiB
TypeScript
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
|