using Microsoft.EntityFrameworkCore;
using ColaFlow.Modules.ProjectManagement.Domain.Aggregates.ProjectAggregate;
using ColaFlow.Modules.ProjectManagement.Domain.Entities;

namespace ColaFlow.Modules.ProjectManagement.Application.Common.Interfaces;

/// <summary>
/// Application database context interface for direct access to DbSets
/// </summary>
public interface IApplicationDbContext
{
    DbSet<Project> Projects { get; }
    DbSet<Epic> Epics { get; }
    DbSet<Story> Stories { get; }
    DbSet<WorkTask> Tasks { get; }
    DbSet<Sprint> Sprints { get; }
    DbSet<AuditLog> AuditLogs { get; }

    Task<int> SaveChangesAsync(CancellationToken cancellationToken = default);
}
