using e_suite.API.Common.repository;
using e_suite.Database.Audit;
using e_suite.Database.Core.Tables.Printer;
using e_suite.UnitTestCore;
using eSuite.Core.Miscellaneous;

namespace e_suite.Service.EFlowSync.UnitTests.FakeRepositories;

public class FakeSpecificationManagerRepository : FakeRepository, ISpecificationManagerRepository
{
    public List<Specification> Specifications { get; set; } = new();

    public IQueryable<Specification> GetSpecifications()
    {
        throw new NotImplementedException();
    }

    public IQueryable<Specification> GetSpecificationsFromForms(IEnumerable<long> formIds)
    {
        return Specifications.Where(x => formIds.Contains(x.FormInstanceId)).AsQueryable();
    }

    public Task<Specification?> GetSpecification(GeneralIdRef generalIdRef, CancellationToken cancellationToken)
    {
        throw new NotImplementedException();
    }

    public Task CreateSpecification(AuditUserDetails auditUserDetails, Specification newSpecification, CancellationToken cancellationToken)
    {
        throw new NotImplementedException();
    }

    public Task CreateSpecification(AuditUserDetails auditUserDetails, IEnumerable<Specification> newSpecification, CancellationToken cancellationToken)
    {
        throw new NotImplementedException();
    }

    public Task EditSpecification(AuditUserDetails auditUserDetails, Specification specification, CancellationToken cancellationToken)
    {
        throw new NotImplementedException();
    }

    public Task EditSpecification(AuditUserDetails auditUserDetails, IEnumerable<Specification> specifications, CancellationToken cancellationToken)
    {
        throw new NotImplementedException();
    }
}