Files
pfm/PostFundManagement.Infrastructure/Database/Migrations/20260924090154_AddedTenantIdToOutcomes.Designer.cs
hermes 020bdee36f Stable run using Multi tenancy across entire estate
Audit logging and error logging active
2026-09-24 12:00:47 +02:00

2286 lines
79 KiB
C#

// <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 PostFundManagement.Infrastructure.Database;
#nullable disable
namespace PostFundManagement.Infrastructure.Database.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20260924090154_AddedTenantIdToOutcomes")]
partial class AddedTenantIdToOutcomes
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "10.0.12")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("PostFundManagement.Domain.Entities.Activity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<decimal>("Amount")
.HasColumnType("numeric");
b.Property<Guid?>("ApprovedBy")
.HasColumnType("uuid");
b.Property<Guid?>("ApproverId")
.HasColumnType("uuid");
b.Property<string>("Category")
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<long?>("MilestoneId")
.HasColumnType("bigint");
b.Property<DateTime?>("PerformedAt")
.HasColumnType("timestamp with time zone");
b.Property<long?>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<string>("Title")
.HasColumnType("text");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ApproverId");
b.HasIndex("CreatorId");
b.HasIndex("MilestoneId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Activities");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.AuditLog", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<string>("Action")
.HasColumnType("text");
b.Property<string>("EntityId")
.HasColumnType("text");
b.Property<string>("EntityName")
.HasColumnType("text");
b.Property<Guid>("PerformedBy")
.HasColumnType("uuid");
b.Property<long?>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime>("Timestamp")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.ToTable("AuditLogs");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Award", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<decimal>("Amount")
.HasColumnType("numeric");
b.Property<Guid?>("ApprovedBy")
.HasColumnType("uuid");
b.Property<Guid?>("ApproverId")
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<long>("OrganisationId")
.HasColumnType("bigint");
b.Property<long>("ProgrammeId")
.HasColumnType("bigint");
b.Property<long?>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ApproverId");
b.HasIndex("CreatorId");
b.HasIndex("OrganisationId");
b.HasIndex("ProgrammeId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Awards");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Beneficiary", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<string>("Category")
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<string>("Location")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("ReachedCount")
.HasColumnType("integer");
b.Property<int>("TargetCount")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UserId");
b.ToTable("Beneficiaries");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Budget", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<decimal>("Amount")
.HasColumnType("numeric");
b.Property<Guid?>("ApprovedBy")
.HasColumnType("uuid");
b.Property<Guid?>("ApproverId")
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("ApproverId");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("Budgets");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.ChangeRequest", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<Guid?>("ApprovedBy")
.HasColumnType("uuid");
b.Property<Guid?>("ApproverId")
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Justification")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<decimal?>("RevisedBudget")
.HasColumnType("numeric");
b.Property<DateTime?>("RevisedEndedAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<string>("Title")
.HasColumnType("text");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("ApproverId");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("ChangeRequests");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.ComplianceItem", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<string>("Requirements")
.HasColumnType("text");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<string>("Title")
.HasColumnType("text");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("VerifiedBy")
.HasColumnType("uuid");
b.Property<Guid?>("VerifierId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("VerifierId");
b.ToTable("ComplianceItems");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Contract", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<long>("AwardId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<DateTime?>("EffectiveAt")
.HasColumnType("timestamp with time zone");
b.Property<DateTime?>("ExpiresAt")
.HasColumnType("timestamp with time zone");
b.Property<string>("ExternalSignatureId")
.HasColumnType("text");
b.Property<string>("SignedDocumentUrl")
.HasColumnType("text");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<decimal>("TotalValue")
.HasColumnType("numeric");
b.HasKey("Id");
b.HasIndex("AwardId")
.IsUnique();
b.HasIndex("CreatorId");
b.HasIndex("TenantId");
b.ToTable("Contracts");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Disbursement", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<decimal>("Amount")
.HasColumnType("numeric");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<long?>("MilestoneId")
.HasColumnType("bigint");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("MilestoneId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Disbursements");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Evidence", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<long>("ActivityId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("DocumentUrl")
.HasColumnType("text");
b.Property<long>("IndicatorId")
.HasColumnType("bigint");
b.Property<long>("MilestoneId")
.HasColumnType("bigint");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<int>("Type")
.HasColumnType("integer");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.Property<int>("Version")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("ActivityId");
b.HasIndex("CreatorId");
b.HasIndex("IndicatorId");
b.HasIndex("MilestoneId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Evidences");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Indicator", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<decimal>("ActualAmount")
.HasColumnType("numeric");
b.Property<decimal>("BaselineAmount")
.HasColumnType("numeric");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<decimal>("TargetAmount")
.HasColumnType("numeric");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<int?>("UnitOfMeasure")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("Indicators");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Instrument", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<string>("Code")
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProgrammeId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProgrammeId");
b.HasIndex("TenantId");
b.ToTable("Instruments");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Invite", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<long>("AwardId")
.HasColumnType("bigint");
b.Property<long>("ContractId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<long>("InvitedOrganisationId")
.HasColumnType("bigint");
b.Property<long>("OrganisationId")
.HasColumnType("bigint");
b.Property<Guid>("Recipient")
.HasColumnType("uuid");
b.Property<Guid?>("RecipientUserId")
.HasColumnType("uuid");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("AwardId");
b.HasIndex("ContractId");
b.HasIndex("InvitedOrganisationId");
b.HasIndex("OrganisationId");
b.HasIndex("RecipientUserId");
b.HasIndex("TenantId");
b.ToTable("Invites");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Issue", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<Guid?>("AssignedTo")
.HasColumnType("uuid");
b.Property<Guid?>("AssigneeId")
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<int>("Priority")
.HasColumnType("integer");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<string>("Resolution")
.HasColumnType("text");
b.Property<DateTime?>("ResolvedAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<string>("Title")
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("AssigneeId");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("Issues");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Milestone", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<DateTime>("DueAt")
.HasColumnType("timestamp with time zone");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<int>("Priority")
.HasColumnType("integer");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Milestones");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Notification", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<string>("Destination")
.HasColumnType("text");
b.Property<string>("Error")
.HasColumnType("text");
b.Property<string>("Message")
.HasColumnType("text");
b.Property<long>("OrganisationId")
.HasColumnType("bigint");
b.Property<int>("Platform")
.HasColumnType("integer");
b.Property<Guid>("Recipient")
.HasColumnType("uuid");
b.Property<Guid?>("RecipientUserId")
.HasColumnType("uuid");
b.Property<DateTime?>("SentAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<string>("Subject")
.HasColumnType("text");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("OrganisationId");
b.HasIndex("RecipientUserId");
b.HasIndex("TenantId");
b.ToTable("Notifications");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Organisation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Email")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<string>("RegistrationNo")
.HasColumnType("text");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<int>("Type")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.ToTable("Organisations");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Outcome", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<long>("BeneficiaryId")
.HasColumnType("bigint");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("BeneficiaryId");
b.HasIndex("CreatorId");
b.HasIndex("TenantId");
b.ToTable("Outcomes");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Portfolio", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("OrganisationId")
.HasColumnType("bigint");
b.Property<Guid>("OwnedBy")
.HasColumnType("uuid");
b.Property<Guid?>("OwnerId")
.HasColumnType("uuid");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("OrganisationId");
b.HasIndex("OwnerId");
b.HasIndex("TenantId");
b.ToTable("Portfolios");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Programme", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<Guid>("OwnedBy")
.HasColumnType("uuid");
b.Property<Guid?>("OwnerId")
.HasColumnType("uuid");
b.Property<long>("PortfolioId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("OwnerId");
b.HasIndex("PortfolioId");
b.HasIndex("TenantId");
b.ToTable("Programmes");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Project", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<DateTime?>("EndedAt")
.HasColumnType("timestamp with time zone");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProgrammeId")
.HasColumnType("bigint");
b.Property<int>("ProjectType")
.HasColumnType("integer");
b.Property<int>("Sector")
.HasColumnType("integer");
b.Property<DateTime?>("StartedAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProgrammeId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Projects");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Risk", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Description")
.HasColumnType("text");
b.Property<int>("Impact")
.HasColumnType("integer");
b.Property<int>("Likelihood")
.HasColumnType("integer");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("Risks");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Rule", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<long>("ProgrammeId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.Property<int>("Version")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProgrammeId");
b.HasIndex("TenantId");
b.HasIndex("UpdatorId");
b.ToTable("Rules");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.SiteVisit", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Findings")
.HasColumnType("text");
b.Property<string>("InspectorName")
.HasColumnType("text");
b.Property<long>("ProjectId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<DateTime>("VisitedAt")
.HasColumnType("timestamp with time zone");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("ProjectId");
b.HasIndex("TenantId");
b.ToTable("SiteVisits");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Tenant", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UpdatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("UpdatorId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("UpdatorId");
b.ToTable("Tenants");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.TenantOrganisation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<Guid?>("CreatorId")
.HasColumnType("uuid");
b.Property<long>("OrganisationId")
.HasColumnType("bigint");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.HasKey("Id");
b.HasIndex("CreatorId");
b.HasIndex("OrganisationId");
b.HasIndex("TenantId");
b.ToTable("TenantOrganisations");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.TenantUser", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone");
b.Property<Guid>("CreatedBy")
.HasColumnType("uuid");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<long>("TenantId")
.HasColumnType("bigint");
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("CreatedBy");
b.HasIndex("TenantId");
b.HasIndex("UserId");
b.ToTable("TenantUsers");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.User", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Email")
.HasColumnType("text");
b.Property<DateTime?>("LastLoginAt")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Activity", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Approver")
.WithMany()
.HasForeignKey("ApproverId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Milestone", "Milestone")
.WithMany()
.HasForeignKey("MilestoneId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Approver");
b.Navigation("Creator");
b.Navigation("Milestone");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Award", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Approver")
.WithMany()
.HasForeignKey("ApproverId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "Organisation")
.WithMany()
.HasForeignKey("OrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Programme", "Programme")
.WithMany("Awards")
.HasForeignKey("ProgrammeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany("Awards")
.HasForeignKey("ProjectId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Approver");
b.Navigation("Creator");
b.Navigation("Organisation");
b.Navigation("Programme");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Beneficiary", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("User");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Budget", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Approver")
.WithMany()
.HasForeignKey("ApproverId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Approver");
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.ChangeRequest", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Approver")
.WithMany()
.HasForeignKey("ApproverId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Approver");
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.ComplianceItem", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Verifier")
.WithMany()
.HasForeignKey("VerifierId");
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Verifier");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Contract", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.Award", "Award")
.WithOne("Contract")
.HasForeignKey("PostFundManagement.Domain.Entities.Contract", "AwardId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Award");
b.Navigation("Creator");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Disbursement", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Milestone", "Milestone")
.WithMany()
.HasForeignKey("MilestoneId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Creator");
b.Navigation("Milestone");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Evidence", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.Activity", "Activity")
.WithMany("Evidences")
.HasForeignKey("ActivityId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Indicator", "Indicator")
.WithMany()
.HasForeignKey("IndicatorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Milestone", "Milestone")
.WithMany()
.HasForeignKey("MilestoneId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Activity");
b.Navigation("Creator");
b.Navigation("Indicator");
b.Navigation("Milestone");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Indicator", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Instrument", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Programme", "Programme")
.WithMany("Instruments")
.HasForeignKey("ProgrammeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Programme");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Invite", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.Award", "Award")
.WithMany()
.HasForeignKey("AwardId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Contract", "Contract")
.WithMany()
.HasForeignKey("ContractId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "InvitedOrganisation")
.WithMany()
.HasForeignKey("InvitedOrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "Organisation")
.WithMany()
.HasForeignKey("OrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "RecipientUser")
.WithMany()
.HasForeignKey("RecipientUserId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Award");
b.Navigation("Contract");
b.Navigation("InvitedOrganisation");
b.Navigation("Organisation");
b.Navigation("RecipientUser");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Issue", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Assignee")
.WithMany()
.HasForeignKey("AssigneeId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Assignee");
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Milestone", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Notification", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "Organisation")
.WithMany()
.HasForeignKey("OrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "RecipientUser")
.WithMany()
.HasForeignKey("RecipientUserId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Organisation");
b.Navigation("RecipientUser");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Organisation", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.Navigation("Creator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Outcome", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.Beneficiary", "Beneficiary")
.WithMany()
.HasForeignKey("BeneficiaryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Beneficiary");
b.Navigation("Creator");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Portfolio", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "Organisation")
.WithMany()
.HasForeignKey("OrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId");
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Organisation");
b.Navigation("Owner");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Programme", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Owner")
.WithMany()
.HasForeignKey("OwnerId");
b.HasOne("PostFundManagement.Domain.Entities.Portfolio", "Portfolio")
.WithMany("Programmes")
.HasForeignKey("PortfolioId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Owner");
b.Navigation("Portfolio");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Project", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Programme", "Programme")
.WithMany("Projects")
.HasForeignKey("ProgrammeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Creator");
b.Navigation("Programme");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Risk", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Rule", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Programme", "Programme")
.WithMany("Rules")
.HasForeignKey("ProgrammeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Creator");
b.Navigation("Programme");
b.Navigation("Tenant");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.SiteVisit", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Project", "Project")
.WithMany()
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Project");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Tenant", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.User", "Updator")
.WithMany()
.HasForeignKey("UpdatorId");
b.Navigation("Creator");
b.Navigation("Updator");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.TenantOrganisation", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatorId");
b.HasOne("PostFundManagement.Domain.Entities.Organisation", "Organisation")
.WithMany()
.HasForeignKey("OrganisationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Organisation");
b.Navigation("Tenant");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.TenantUser", b =>
{
b.HasOne("PostFundManagement.Domain.Entities.User", "Creator")
.WithMany()
.HasForeignKey("CreatedBy")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.Tenant", "Tenant")
.WithMany()
.HasForeignKey("TenantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PostFundManagement.Domain.Entities.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Creator");
b.Navigation("Tenant");
b.Navigation("User");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Activity", b =>
{
b.Navigation("Evidences");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Award", b =>
{
b.Navigation("Contract");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Portfolio", b =>
{
b.Navigation("Programmes");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Programme", b =>
{
b.Navigation("Awards");
b.Navigation("Instruments");
b.Navigation("Projects");
b.Navigation("Rules");
});
modelBuilder.Entity("PostFundManagement.Domain.Entities.Project", b =>
{
b.Navigation("Awards");
});
#pragma warning restore 612, 618
}
}
}