// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using TakeoutSaaS.Infrastructure.Logs.Persistence;

#nullable disable

namespace TakeoutSaaS.Infrastructure.Migrations.LogsDb
{
    [DbContext(typeof(TakeoutLogsDbContext))]
    [Migration("20251229071940_AddMerchantManagementLogs")]
    partial class AddMerchantManagementLogs
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "10.0.1")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("TakeoutSaaS.Domain.Membership.Entities.MemberGrowthLog", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<int>("ChangeValue")
                        .HasColumnType("integer")
                        .HasComment("变动数量。");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("创建时间（UTC）。");

                    b.Property<long?>("CreatedBy")
                        .HasColumnType("bigint")
                        .HasComment("创建人用户标识，匿名或系统操作时为 null。");

                    b.Property<int>("CurrentValue")
                        .HasColumnType("integer")
                        .HasComment("当前成长值。");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("软删除时间（UTC），未删除时为 null。");

                    b.Property<long?>("DeletedBy")
                        .HasColumnType("bigint")
                        .HasComment("删除人用户标识（软删除），未删除时为 null。");

                    b.Property<long>("MemberId")
                        .HasColumnType("bigint")
                        .HasComment("会员标识。");

                    b.Property<string>("Notes")
                        .HasMaxLength(256)
                        .HasColumnType("character varying(256)")
                        .HasComment("备注。");

                    b.Property<DateTime>("OccurredAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("发生时间。");

                    b.Property<long>("TenantId")
                        .HasColumnType("bigint")
                        .HasComment("所属租户 ID。");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("最近一次更新时间（UTC），从未更新时为 null。");

                    b.Property<long?>("UpdatedBy")
                        .HasColumnType("bigint")
                        .HasComment("最后更新人用户标识，匿名或系统操作时为 null。");

                    b.HasKey("Id");

                    b.HasIndex("TenantId", "MemberId", "OccurredAt");

                    b.ToTable("member_growth_logs", null, t =>
                        {
                            t.HasComment("成长值变动日志。");
                        });
                });

            modelBuilder.Entity("TakeoutSaaS.Domain.Merchants.Entities.MerchantAuditLog", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<int>("Action")
                        .HasColumnType("integer")
                        .HasComment("动作类型。");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("创建时间（UTC）。");

                    b.Property<long?>("CreatedBy")
                        .HasColumnType("bigint")
                        .HasComment("创建人用户标识，匿名或系统操作时为 null。");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("软删除时间（UTC），未删除时为 null。");

                    b.Property<long?>("DeletedBy")
                        .HasColumnType("bigint")
                        .HasComment("删除人用户标识（软删除），未删除时为 null。");

                    b.Property<string>("Description")
                        .HasMaxLength(1024)
                        .HasColumnType("character varying(1024)")
                        .HasComment("详情描述。");

                    b.Property<string>("IpAddress")
                        .HasMaxLength(50)
                        .HasColumnType("character varying(50)")
                        .HasComment("操作 IP。");

                    b.Property<long>("MerchantId")
                        .HasColumnType("bigint")
                        .HasComment("商户标识。");

                    b.Property<long?>("OperatorId")
                        .HasColumnType("bigint")
                        .HasComment("操作人 ID。");

                    b.Property<string>("OperatorName")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasComment("操作人名称。");

                    b.Property<long>("TenantId")
                        .HasColumnType("bigint")
                        .HasComment("所属租户 ID。");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("character varying(200)")
                        .HasComment("标题。");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("最近一次更新时间（UTC），从未更新时为 null。");

                    b.Property<long?>("UpdatedBy")
                        .HasColumnType("bigint")
                        .HasComment("最后更新人用户标识，匿名或系统操作时为 null。");

                    b.HasKey("Id");

                    b.HasIndex("MerchantId", "CreatedAt");

                    b.HasIndex("TenantId", "CreatedAt");

                    b.HasIndex("TenantId", "MerchantId");

                    b.ToTable("merchant_audit_logs", null, t =>
                        {
                            t.HasComment("商户入驻审核日志。");
                        });
                });

            modelBuilder.Entity("TakeoutSaaS.Domain.Merchants.Entities.MerchantChangeLog", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<string>("ChangeReason")
                        .HasMaxLength(512)
                        .HasColumnType("character varying(512)")
                        .HasComment("变更原因。");

                    b.Property<string>("ChangeType")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)")
                        .HasComment("变更类型。");

                    b.Property<long?>("ChangedBy")
                        .HasColumnType("bigint")
                        .HasComment("变更人 ID。");

                    b.Property<string>("ChangedByName")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasComment("变更人名称。");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("创建时间（UTC）。");

                    b.Property<long?>("CreatedBy")
                        .HasColumnType("bigint")
                        .HasComment("创建人用户标识，匿名或系统操作时为 null。");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("软删除时间（UTC），未删除时为 null。");

                    b.Property<long?>("DeletedBy")
                        .HasColumnType("bigint")
                        .HasComment("删除人用户标识（软删除），未删除时为 null。");

                    b.Property<string>("FieldName")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasComment("变更字段名。");

                    b.Property<long>("MerchantId")
                        .HasColumnType("bigint")
                        .HasComment("商户标识。");

                    b.Property<string>("NewValue")
                        .HasColumnType("text")
                        .HasComment("变更后值。");

                    b.Property<string>("OldValue")
                        .HasColumnType("text")
                        .HasComment("变更前值。");

                    b.Property<long>("TenantId")
                        .HasColumnType("bigint")
                        .HasComment("所属租户 ID。");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("最近一次更新时间（UTC），从未更新时为 null。");

                    b.Property<long?>("UpdatedBy")
                        .HasColumnType("bigint")
                        .HasComment("最后更新人用户标识，匿名或系统操作时为 null。");

                    b.HasKey("Id");

                    b.HasIndex("MerchantId", "CreatedAt");

                    b.HasIndex("TenantId", "CreatedAt");

                    b.ToTable("merchant_change_logs", null, t =>
                        {
                            t.HasComment("商户变更日志。");
                        });
                });

            modelBuilder.Entity("TakeoutSaaS.Domain.Tenants.Entities.OperationLog", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("创建时间（UTC）。");

                    b.Property<long?>("CreatedBy")
                        .HasColumnType("bigint")
                        .HasComment("创建人用户标识，匿名或系统操作时为 null。");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("软删除时间（UTC），未删除时为 null。");

                    b.Property<long?>("DeletedBy")
                        .HasColumnType("bigint")
                        .HasComment("删除人用户标识（软删除），未删除时为 null。");

                    b.Property<string>("OperationType")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasComment("操作类型：BatchExtend, BatchRemind, StatusChange 等。");

                    b.Property<string>("OperatorId")
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasComment("操作人ID。");

                    b.Property<string>("OperatorName")
                        .HasMaxLength(128)
                        .HasColumnType("character varying(128)")
                        .HasComment("操作人名称。");

                    b.Property<string>("Parameters")
                        .HasColumnType("text")
                        .HasComment("操作参数（JSON）。");

                    b.Property<string>("Result")
                        .HasColumnType("text")
                        .HasComment("操作结果（JSON）。");

                    b.Property<bool>("Success")
                        .HasColumnType("boolean")
                        .HasComment("是否成功。");

                    b.Property<string>("TargetIds")
                        .HasColumnType("text")
                        .HasComment("目标ID列表（JSON）。");

                    b.Property<string>("TargetType")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasComment("目标类型：Subscription, Bill 等。");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("最近一次更新时间（UTC），从未更新时为 null。");

                    b.Property<long?>("UpdatedBy")
                        .HasColumnType("bigint")
                        .HasComment("最后更新人用户标识，匿名或系统操作时为 null。");

                    b.HasKey("Id");

                    b.HasIndex("CreatedAt");

                    b.HasIndex("OperationType", "CreatedAt");

                    b.ToTable("operation_logs", null, t =>
                        {
                            t.HasComment("运营操作日志。");
                        });
                });

            modelBuilder.Entity("TakeoutSaaS.Domain.Tenants.Entities.TenantAuditLog", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<int>("Action")
                        .HasColumnType("integer")
                        .HasComment("操作类型。");

                    b.Property<DateTime>("CreatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("创建时间（UTC）。");

                    b.Property<long?>("CreatedBy")
                        .HasColumnType("bigint")
                        .HasComment("创建人用户标识，匿名或系统操作时为 null。");

                    b.Property<int?>("CurrentStatus")
                        .HasColumnType("integer")
                        .HasComment("新状态。");

                    b.Property<DateTime?>("DeletedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("软删除时间（UTC），未删除时为 null。");

                    b.Property<long?>("DeletedBy")
                        .HasColumnType("bigint")
                        .HasComment("删除人用户标识（软删除），未删除时为 null。");

                    b.Property<string>("Description")
                        .HasMaxLength(1024)
                        .HasColumnType("character varying(1024)")
                        .HasComment("详细描述。");

                    b.Property<long?>("OperatorId")
                        .HasColumnType("bigint")
                        .HasComment("操作人 ID。");

                    b.Property<string>("OperatorName")
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasComment("操作人名称。");

                    b.Property<int?>("PreviousStatus")
                        .HasColumnType("integer")
                        .HasComment("原状态。");

                    b.Property<long>("TenantId")
                        .HasColumnType("bigint")
                        .HasComment("关联的租户标识。");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(128)
                        .HasColumnType("character varying(128)")
                        .HasComment("日志标题。");

                    b.Property<DateTime?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasComment("最近一次更新时间（UTC），从未更新时为 null。");

                    b.Property<long?>("UpdatedBy")
                        .HasColumnType("bigint")
                        .HasComment("最后更新人用户标识，匿名或系统操作时为 null。");

                    b.HasKey("Id");

                    b.HasIndex("TenantId");

                    b.ToTable("tenant_audit_logs", null, t =>
                        {
                            t.HasComment("租户运营审核日志。");
                        });
                });

            modelBuilder.Entity("TakeoutSaaS.Infrastructure.Logs.Persistence.OperationLogInboxMessage", b =>
                {
                    b.Property<long>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasComment("实体唯一标识。");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));

                    b.Property<DateTime>("ConsumedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<Guid>("MessageId")
                        .HasColumnType("uuid");

                    b.HasKey("Id");

                    b.HasIndex("MessageId")
                        .IsUnique();

                    b.ToTable("operation_log_inbox_messages", (string)null);
                });
#pragma warning restore 612, 618
        }
    }
}
