using File.Domain.Entities.FileMeta;
using File.Domain.Entities.FileSetting;
using File.Domain.Entities.Folder;
using File.Domain.Entities.MultipartUploadSession;
using File.Domain.Entities.ShareLink;
using Microsoft.EntityFrameworkCore;
namespace File.Infrastructure.Persistence;
///
/// file-system 统一 DbContext。聚合 FolderEntity/FileMetaEntity/ShareLinkEntity/MultipartUploadSessionEntity 聚合根。
/// 注意:实体均不实现 ISoftDelete,故无全局软删除查询过滤器,Remove() 走真实物理删除(忠实 Go 版语义)。
///
public class FileDbContext : DbContext
{
public FileDbContext(DbContextOptions options) : base(options) { }
public DbSet Folders => Set();
public DbSet Files => Set();
public DbSet ShareLinks => Set();
public DbSet UploadSessions => Set();
public DbSet Settings => Set();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// 自动发现并应用当前程序集中所有 IEntityTypeConfiguration
modelBuilder.ApplyConfigurationsFromAssembly(typeof(FileDbContext).Assembly);
}
}