plugin-voting/repositories/ResponseChangeLogRepository.js
2025-11-03 14:01:07 +02:00

41 lines
1.2 KiB
JavaScript

const BaseRepository = require('../../../src/database/repository');
const logger = require('../../../src/utils/logger');
class ResponseChangeLogRepository extends BaseRepository {
constructor() {
super('pg_vt_response_change_logs');
}
/**
* Find logs with filters
* @param {Object} filters - Filter criteria
* @param {Object} options - Query options
*/
async findWithFilters(filters = {}, options = {}) {
const criteria = {};
if (filters.response_id) criteria.response_id = filters.response_id;
if (filters.campaign_id) criteria.campaign_id = filters.campaign_id;
if (filters.person_id) criteria.person_id = filters.person_id;
const orderBy = options.orderBy || 'created_at';
const orderDirection = options.orderDirection || 'desc';
const limit = options.limit;
return await this.findAll(criteria, { orderBy, orderDirection, limit });
}
/**
* Log a response change
* @param {Object} logData - Change log data
*/
async logChange(logData) {
return await this.create({
...logData,
created_at: new Date().toISOString()
});
}
}
module.exports = ResponseChangeLogRepository;