export default class CLASS_NAME {
    constructor(repository) {
        this.repository = repository;
    }

    /**
     * @param {String|Number} id
     * @returns {Entity}
     */
    async getOne(id) {
        return await this.repository.getOne(id);
    }

    /**
     * @returns {Collection}
     */
    async get() {
        return await this.repository.get();
    }

    /**
     * @param {Entity} entity
     * @returns
     */
    async create(entity) {
        return await this.repository.create(entity);
    }

    /**
     * @param {Entity} entity
     * @returns
     */
    async update(entity) {
        return await this.repository.update(entity);
    }

    /**
     * @param {String|Number} id
     * @returns
     */
    async delete(id) {
        return await this.repository.delete(id);
    }

    /**
     * @param {string | Object} conditions
     * @returns {Collection}
     */
    async find(conditions) {
        return await this.repository.find(conditions);
    }

    /**
     * @param {number[] | stringp[]} ids
     * @returns {Collection}
     */
    async getMany(ids) {
        return await this.repository.getMany(ids);
    }
}