// Path: src/products/families/FamilyService.js
const BaseService = require('../../common/BaseService');
const FamilyEntity = require('./FamilyEntity');
const FamilyRepository = require('./FamilyRepository');
const DB = require('@vectoricons.net/db');
const { withSoftDeletable, withActivatable } = require('../../common/mixins/service');
/**
* @module Products Domain
* @fileoverview FamilyService - Service for managing family data with soft delete and activation support.
* @class FamilyService
*/
class FamilyService extends withSoftDeletable(withActivatable(BaseService)) {
constructor({ repository, entityClass } = {}) {
super({
repository: repository || new FamilyRepository({ DB }),
entityClass: entityClass || FamilyEntity,
});
}
async getFamilyByUniqueId(uniqueId, options = {}) {
return this.repository.findByUniqueId(uniqueId, options);
}
async getAllActiveFamilies(options = {}) {
return this.repository.findAllActive(options);
}
}
module.exports = FamilyService;
Source