﻿using EzApp.Data.Core.DataModels;
using System;
using System.Collections.Generic;

namespace EzApp.Data.Sql.Core.SqlBuilder
{
    public interface IEzSqlPropertyExtractor
    {
        ICollection<IEzSqlProperty> GetWherePropertiesFromModel(IEzDataModel model);

        ICollection<IEzSqlProperty> GetSetPropertiesFromModel(IEzDataModel model);

        ICollection<IEzSqlProperty> GetInsertPropertiesFromModel(IEzDataModel model);

        ICollection<IEzSqlProperty> GetSelectPropertiesFromModel(IEzDataModel model);

        ICollection<IEzSqlProperty> GetPropertiesFromModel<TAttribute>(IEzDataModel model)
            where TAttribute : Attribute;
    }
}
