erp-platform/api/modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Application.Contracts/ISqlObjectManagerAppService.cs
2025-12-06 01:38:21 +03:00

47 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace Erp.SqlQueryManager.Application.Contracts;
/// <summary>
/// Unified service for SQL Object Explorer and CRUD operations
/// </summary>
public interface ISqlObjectManagerAppService : IApplicationService
{
/// <summary>
/// Get all SQL objects for Object Explorer (Queries, SPs, Views, Functions, Tables, Templates)
/// </summary>
/// <param name="dataSourceCode">Data source code to filter objects</param>
/// <returns>Combined response with all object types</returns>
Task<SqlObjectExplorerDto> GetAllObjectsAsync(string dataSourceCode);
// Query Operations
Task<SqlQueryDto> CreateQueryAsync(CreateSqlQueryDto input);
Task<SqlQueryDto> UpdateQueryAsync(Guid id, UpdateSqlQueryDto input);
Task DeleteQueryAsync(Guid id);
Task<SqlQueryExecutionResultDto> ExecuteQueryAsync(ExecuteSqlQueryDto input);
Task<SqlQueryExecutionResultDto> ExecuteSavedQueryAsync(Guid id);
// Stored Procedure Operations
Task<SqlStoredProcedureDto> UpdateStoredProcedureAsync(Guid id, UpdateSqlStoredProcedureDto input);
Task DeleteStoredProcedureAsync(Guid id);
Task<SqlQueryExecutionResultDto> DeployStoredProcedureAsync(DeployStoredProcedureDto input);
// View Operations
Task<SqlViewDto> UpdateViewAsync(Guid id, UpdateSqlViewDto input);
Task DeleteViewAsync(Guid id);
Task<SqlQueryExecutionResultDto> DeployViewAsync(DeployViewDto input);
// Function Operations
Task<SqlFunctionDto> UpdateFunctionAsync(Guid id, UpdateSqlFunctionDto input);
Task DeleteFunctionAsync(Guid id);
Task<SqlQueryExecutionResultDto> DeployFunctionAsync(DeployFunctionDto input);
// Database Metadata Operations
Task<List<DatabaseColumnDto>> GetTableColumnsAsync(string dataSourceCode, string schemaName, string tableName);
// Smart Save - Analyzes SQL and saves to appropriate table with auto-deploy
Task<SmartSaveResultDto> SmartSaveAsync(SmartSaveInputDto input);
}