diff --git a/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.Designer.cs b/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.Designer.cs
new file mode 100644
index 00000000..8b0b8903
--- /dev/null
+++ b/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.Designer.cs
@@ -0,0 +1,247 @@
+//
+using System;
+using LinkDotNet.Blog.Infrastructure.Persistence.Sql;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace LinkDotNet.Blog.Infrastructure.Migrations
+{
+ [DbContext(typeof(BlogDbContext))]
+ [Migration("20241203173853_BlogPost_MembersOnly")]
+ partial class BlogPost_MembersOnly
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "8.0.11");
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.BlogPost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("Content")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("IsMembersOnly")
+ .HasColumnType("INTEGER");
+
+ b.Property("IsPublished")
+ .HasColumnType("INTEGER");
+
+ b.Property("Likes")
+ .HasColumnType("INTEGER");
+
+ b.Property("PreviewImageUrl")
+ .IsRequired()
+ .HasMaxLength(1024)
+ .HasColumnType("TEXT");
+
+ b.Property("PreviewImageUrlFallback")
+ .HasMaxLength(1024)
+ .HasColumnType("TEXT");
+
+ b.Property("ReadingTimeInMinutes")
+ .HasColumnType("INTEGER");
+
+ b.Property("ScheduledPublishDate")
+ .HasColumnType("TEXT");
+
+ b.Property("ShortDescription")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Tags")
+ .IsRequired()
+ .HasMaxLength(2048)
+ .HasColumnType("TEXT");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("UpdatedDate")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("IsPublished", "UpdatedDate")
+ .IsDescending(false, true)
+ .HasDatabaseName("IX_BlogPosts_IsPublished_UpdatedDate");
+
+ b.ToTable("BlogPosts");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.BlogPostRecord", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("BlogPostId")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("Clicks")
+ .HasColumnType("INTEGER");
+
+ b.Property("DateClicked")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("BlogPostRecords");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.ProfileInformationEntry", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("Content")
+ .IsRequired()
+ .HasMaxLength(512)
+ .HasColumnType("TEXT");
+
+ b.Property("SortOrder")
+ .HasColumnType("INTEGER");
+
+ b.HasKey("Id");
+
+ b.ToTable("ProfileInformationEntries");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.ShortCode", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("MarkdownContent")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(512)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("ShortCodes");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.SimilarBlogPost", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("SimilarBlogPostIds")
+ .IsRequired()
+ .HasMaxLength(1350)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("SimilarBlogPosts");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.Skill", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("Capability")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("TEXT");
+
+ b.Property("IconUrl")
+ .HasMaxLength(1024)
+ .HasColumnType("TEXT");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("TEXT");
+
+ b.Property("ProficiencyLevel")
+ .IsRequired()
+ .HasMaxLength(32)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("Skills");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.Talk", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Place")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("PresentationTitle")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.Property("PublishedDate")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("Talks");
+ });
+
+ modelBuilder.Entity("LinkDotNet.Blog.Domain.UserRecord", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .IsUnicode(false)
+ .HasColumnType("TEXT");
+
+ b.Property("DateClicked")
+ .HasColumnType("TEXT");
+
+ b.Property("UrlClicked")
+ .IsRequired()
+ .HasMaxLength(256)
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.ToTable("UserRecords");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.cs b/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.cs
new file mode 100644
index 00000000..b956349a
--- /dev/null
+++ b/src/LinkDotNet.Blog.Infrastructure/Migrations/20241203173853_BlogPost_MembersOnly.cs
@@ -0,0 +1,29 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace LinkDotNet.Blog.Infrastructure.Migrations
+{
+ ///
+ public partial class BlogPost_MembersOnly : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "IsMembersOnly",
+ table: "BlogPosts",
+ type: "INTEGER",
+ nullable: false,
+ defaultValue: false);
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "IsMembersOnly",
+ table: "BlogPosts");
+ }
+ }
+}
diff --git a/src/LinkDotNet.Blog.Infrastructure/Migrations/BlogDbContextModelSnapshot.cs b/src/LinkDotNet.Blog.Infrastructure/Migrations/BlogDbContextModelSnapshot.cs
index d5b07c7f..94bd60b4 100644
--- a/src/LinkDotNet.Blog.Infrastructure/Migrations/BlogDbContextModelSnapshot.cs
+++ b/src/LinkDotNet.Blog.Infrastructure/Migrations/BlogDbContextModelSnapshot.cs
@@ -28,6 +28,9 @@ protected override void BuildModel(ModelBuilder modelBuilder)
.IsRequired()
.HasColumnType("TEXT");
+ b.Property("IsMembersOnly")
+ .HasColumnType("INTEGER");
+
b.Property("IsPublished")
.HasColumnType("INTEGER");