73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
"use strict";
|
|
/**
|
|
* Fraccionamiento Service
|
|
* Servicio para gestión de fraccionamientos/obras
|
|
*
|
|
* @module Construction
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.FraccionamientoService = void 0;
|
|
const typeorm_config_1 = require("../../../shared/database/typeorm.config");
|
|
const fraccionamiento_entity_1 = require("../entities/fraccionamiento.entity");
|
|
class FraccionamientoService {
|
|
repository;
|
|
constructor() {
|
|
this.repository = typeorm_config_1.AppDataSource.getRepository(fraccionamiento_entity_1.Fraccionamiento);
|
|
}
|
|
async findAll(filters) {
|
|
const where = {
|
|
tenantId: filters.tenantId,
|
|
};
|
|
if (filters.proyectoId) {
|
|
where.proyectoId = filters.proyectoId;
|
|
}
|
|
if (filters.estado) {
|
|
where.estado = filters.estado;
|
|
}
|
|
return this.repository.find({
|
|
where,
|
|
relations: ['proyecto'],
|
|
order: { createdAt: 'DESC' },
|
|
});
|
|
}
|
|
async findById(id, tenantId) {
|
|
return this.repository.findOne({
|
|
where: { id, tenantId },
|
|
relations: ['proyecto', 'createdBy'],
|
|
});
|
|
}
|
|
async findByCodigo(codigo, tenantId) {
|
|
return this.repository.findOne({
|
|
where: { codigo, tenantId },
|
|
});
|
|
}
|
|
async findByProyecto(proyectoId, tenantId) {
|
|
return this.repository.find({
|
|
where: { proyectoId, tenantId },
|
|
order: { codigo: 'ASC' },
|
|
});
|
|
}
|
|
async create(data) {
|
|
const fraccionamiento = this.repository.create(data);
|
|
return this.repository.save(fraccionamiento);
|
|
}
|
|
async update(id, tenantId, data) {
|
|
const fraccionamiento = await this.findById(id, tenantId);
|
|
if (!fraccionamiento) {
|
|
return null;
|
|
}
|
|
Object.assign(fraccionamiento, data);
|
|
return this.repository.save(fraccionamiento);
|
|
}
|
|
async delete(id, tenantId) {
|
|
const result = await this.repository.delete({ id, tenantId });
|
|
return result.affected ? result.affected > 0 : false;
|
|
}
|
|
async countByProyecto(proyectoId, tenantId) {
|
|
return this.repository.count({
|
|
where: { proyectoId, tenantId },
|
|
});
|
|
}
|
|
}
|
|
exports.FraccionamientoService = FraccionamientoService;
|
|
//# sourceMappingURL=fraccionamiento.service.js.map
|