IConnectorInsightsDataQueryV2.cs•2.19 kB
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Api.DigitalPages.Interfaces.Connector
{
/// <summary>
/// Interface para consulta de dados de insights do conector.
/// </summary>
public interface IConnectorInsightsDataQueryV2 : ISystemContextRequired
{
Task<XapiQueryResult> Get(XapiQueryOptions options);
}
/// <summary>
/// Representa as opções de consulta de dados de insights.
/// </summary>
public class XapiQueryOptions
{
/// <summary>
/// Data de início do período da consulta.
/// </summary>
public DateTime PeriodStart { get; }
/// <summary>
/// Data de término do período da consulta.
/// </summary>
public DateTime PeriodEnd { get; }
/// <summary>
/// Filtros que contêm dados para a consulta.
/// </summary>
public List<string> FilterContainsData { get; set; }
/// <summary>
/// Inicializa uma nova instância da classe <see cref="XapiQueryOptions"/>.
/// </summary>
/// <param name="periodStart">Data de início do período da consulta.</param>
/// <param name="periodEnd">Data de término do período da consulta.</param>
public XapiQueryOptions(DateTime periodStart, DateTime periodEnd)
{
PeriodStart = periodStart;
PeriodEnd = periodEnd;
}
}
public class XapiQueryResult
{
public IInsightsTable Data { get; }
public IInsightsTable DataReferences { get; }
public XapiQueryResult(IInsightsTable data, IInsightsTable dataReferences)
{
Data = data;
DataReferences = dataReferences;
}
}
public interface IInsightsResult
{
List<IInsightsTable> Tables { get; set; }
}
public interface IInsightsTable
{
public List<IInsightsColumnDefinition> Columns { get; set; }
List<List<string>> Rows { get; set; }
}
public interface IInsightsColumnDefinition
{
string Name { get; set; }
string Type { get; set; }
}
}