const BaseRepository = require('../../../src/database/repository'); const logger = require('../../../src/utils/logger'); class FormRepository extends BaseRepository { constructor() { super('pg_vt_forms'); } /** * Find forms with filters * @param {Object} filters - Filter criteria * @param {Object} options - Query options */ async findWithFilters(filters = {}, options = {}) { const criteria = {}; if (filters.site_id) criteria.site_id = filters.site_id; if (filters.form_type) criteria.form_type = filters.form_type; if (filters.is_active !== undefined) criteria.is_active = filters.is_active; const orderBy = options.orderBy || 'created_at'; const orderDirection = options.orderDirection || 'desc'; const limit = options.limit; return await this.findAll(criteria, { orderBy, orderDirection, limit }); } /** * Create or update form * @param {Object} formData - Form data */ async save(formData) { if (formData.id) { return await this.updateById(formData.id, { ...formData, updated_at: new Date().toISOString() }); } else { return await this.create(formData); } } } module.exports = FormRepository;