Marketplace móvil para negocios locales mexicanos. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React Web) - apps/mobile (Expo/React Native) - apps/mcp-server (Claude MCP Server) - apps/whatsapp-service (WhatsApp Business API) - database/ (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
84 lines
3.7 KiB
JavaScript
84 lines
3.7 KiB
JavaScript
"use strict";
|
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
};
|
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.PaymentsService = void 0;
|
|
const common_1 = require("@nestjs/common");
|
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
const typeorm_2 = require("typeorm");
|
|
const payment_method_entity_1 = require("./entities/payment-method.entity");
|
|
const DEFAULT_PAYMENT_METHODS = [
|
|
{ code: 'cash', name: 'Efectivo', icon: 'banknote', isDefault: true, sortOrder: 1 },
|
|
{ code: 'card', name: 'Tarjeta', icon: 'credit-card', isDefault: false, sortOrder: 2 },
|
|
{ code: 'transfer', name: 'Transferencia', icon: 'smartphone', isDefault: false, sortOrder: 3 },
|
|
];
|
|
let PaymentsService = class PaymentsService {
|
|
constructor(paymentMethodRepository) {
|
|
this.paymentMethodRepository = paymentMethodRepository;
|
|
}
|
|
async findAll(tenantId) {
|
|
return this.paymentMethodRepository.find({
|
|
where: { tenantId, isActive: true },
|
|
order: { sortOrder: 'ASC' },
|
|
});
|
|
}
|
|
async findOne(tenantId, id) {
|
|
const method = await this.paymentMethodRepository.findOne({
|
|
where: { id, tenantId },
|
|
});
|
|
if (!method) {
|
|
throw new common_1.NotFoundException('Método de pago no encontrado');
|
|
}
|
|
return method;
|
|
}
|
|
async getDefault(tenantId) {
|
|
return this.paymentMethodRepository.findOne({
|
|
where: { tenantId, isDefault: true, isActive: true },
|
|
});
|
|
}
|
|
async initializeForTenant(tenantId) {
|
|
const existing = await this.paymentMethodRepository.count({
|
|
where: { tenantId },
|
|
});
|
|
if (existing > 0) {
|
|
return this.findAll(tenantId);
|
|
}
|
|
const methods = [];
|
|
for (const method of DEFAULT_PAYMENT_METHODS) {
|
|
const paymentMethod = this.paymentMethodRepository.create({
|
|
...method,
|
|
tenantId,
|
|
});
|
|
methods.push(await this.paymentMethodRepository.save(paymentMethod));
|
|
}
|
|
return methods;
|
|
}
|
|
async toggleActive(tenantId, id) {
|
|
const method = await this.findOne(tenantId, id);
|
|
method.isActive = !method.isActive;
|
|
return this.paymentMethodRepository.save(method);
|
|
}
|
|
async setDefault(tenantId, id) {
|
|
await this.paymentMethodRepository.update({ tenantId }, { isDefault: false });
|
|
const method = await this.findOne(tenantId, id);
|
|
method.isDefault = true;
|
|
return this.paymentMethodRepository.save(method);
|
|
}
|
|
};
|
|
exports.PaymentsService = PaymentsService;
|
|
exports.PaymentsService = PaymentsService = __decorate([
|
|
(0, common_1.Injectable)(),
|
|
__param(0, (0, typeorm_1.InjectRepository)(payment_method_entity_1.PaymentMethod)),
|
|
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
], PaymentsService);
|
|
//# sourceMappingURL=payments.service.js.map
|