Added dbml file

This commit is contained in:
2026-08-16 08:27:20 +02:00
parent d4bb0cf7a8
commit f7b30f89ea
+349
View File
@@ -0,0 +1,349 @@
Table "AuditLogs" {
"Id" int8 [not null]
"EntityName" varchar(128) [not null]
"EntityId" int8 [not null]
"Action" varchar(64) [not null]
"Changes" jsonb
"PerformedBy" uuid [not null]
"Timestamp" timestamptz [not null]
}
Table "Awards" {
"Id" int8 [not null]
"OrganisationId" int8 [not null]
"ProgrammeId" int8 [not null]
"ProjectId" int8
"CreatedBy" uuid [not null]
"UpdatedBy" uuid
"ApprovedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
"Status" int4 [not null]
"Amount" numeric(18,2) [not null]
}
Table "Beneficiaries" {
"Id" int8 [not null]
"AwardId" int8 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"Name" varchar(256) [not null]
"Category" varchar(128) [not null]
"TargetCount" int4 [not null]
"ReachedCount" int4 [not null]
"Location" varchar(256) [not null]
}
Table "ChangeRequests" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"Title" varchar(256) [not null]
"Justification" text [not null]
"RevisedBudget" numeric(18,2)
"RevisedEndDate" timestamptz
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"ApprovedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
}
Table "ComplianceItems" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"Title" varchar(256) [not null]
"Requirements" text [not null]
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"VerifiedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedBy" uuid
}
Table "Contracts" {
"Id" int8 [not null]
"AwardId" int8 [not null]
"ExternalSignatureId" varchar(256)
"SignedDocumentUrl" varchar(2048)
"EffectiveAt" timestamptz
"ExpiresAt" timestamptz
"TotalValue" numeric(18,2) [not null]
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
}
Table "Disbursements" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"CreatedBy" uuid [not null]
"ApprovedBy" uuid
"CreatedOn" timestamptz [not null]
"UpdatedBy" uuid
"Amount" numeric(18,2) [not null]
}
Table "Evidences" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"MilestoneId" int8
"IndicatorId" int8
"CreatedBy" uuid [not null]
"UpdatedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
"Version" int4 [not null]
"DocumentUrl" text [not null]
"Status" int4 [not null]
}
Table "Indicators" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"Name" varchar(256) [not null]
"UnitOfMeasure" varchar(64) [not null]
"BaselineAmount" numeric(18,2) [not null]
"TargetAmount" numeric(18,2) [not null]
"ActualAmount" numeric(18,2) [not null]
}
Table "Instruments" {
"Id" int8 [not null]
"Code" varchar(32) [not null]
"Name" varchar(256) [not null]
"Description" text
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
}
Table "Issues" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"Title" varchar(256) [not null]
"Description" varchar(1024) [not null]
"Priority" int4 [not null]
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"ResolvedAt" timestamptz
}
Table "Milestones" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"CreatedBy" uuid [not null]
"UpdatedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
"DueDate" timestamptz [not null]
"Name" varchar(256) [not null]
"Status" int4 [not null]
}
Table "Organisations" {
"Id" int8 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"RegistrationNo" varchar(128) [not null]
"Name" varchar(256) [not null]
"Email" varchar(256) [not null]
"Type" int4 [not null]
"Status" int4 [not null]
}
Table "Outcomes" {
"Id" int8 [not null]
"BeneficiaryId" int8 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"Name" varchar(256) [not null]
"Description" text [not null]
}
Table "Portfolios" {
"Id" int8 [not null]
"CreatedBy" uuid [not null]
"OwnedBy" uuid
"CreatedAt" timestamptz [not null]
"Name" varchar(256) [not null]
"Description" varchar(1024)
}
Table "Programmes" {
"Id" int8 [not null]
"PortfolioId" int8 [not null]
"InstrumentId" int8 [not null]
"OwnedBy" uuid [not null]
"CreatedBy" uuid [not null]
"UpdatedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
"Name" varchar(256) [not null]
"Status" int4 [not null]
}
Table "Projects" {
"Id" int8 [not null]
"ProgrammeId" int8 [not null]
"CreatedBy" uuid [not null]
"UpdatedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedAt" timestamptz
"Name" varchar(256) [not null]
"Description" varchar(1024)
"Status" int4 [not null]
}
Table "Risks" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
"Likelihood" int4 [not null]
"Impact" int4 [not null]
"Name" varchar(256) [not null]
"Description" varchar(1024) [not null]
}
Table "Rules" {
"Id" int8 [not null]
"ProgrammeId" int8 [not null]
"CreatedBy" uuid [not null]
"ApprovedBy" uuid
"CreatedAt" timestamptz [not null]
"UpdatedBy" uuid
"Name" varchar(256) [not null]
"Notes" text [not null]
"Status" int4 [not null]
}
Table "SiteVisits" {
"Id" int8 [not null]
"ProjectId" int8 [not null]
"VisitedAt" timestamptz [not null]
"InspectorName" varchar(256) [not null]
"Findings" text [not null]
"Status" int4 [not null]
"CreatedBy" uuid [not null]
"CreatedAt" timestamptz [not null]
}
Table "Users" {
"Id" uuid [not null]
"Firstnames" text [not null]
"Surname" text [not null]
"Status" int4 [not null]
}
Ref "FK_AuditLogs_Users_PerformedBy":"Users"."Id" < "AuditLogs"."PerformedBy" [delete: restrict]
Ref "FK_Awards_Organisations_OrganisationId":"Organisations"."Id" < "Awards"."OrganisationId" [delete: restrict]
Ref "FK_Awards_Programmes_ProgrammeId":"Programmes"."Id" < "Awards"."ProgrammeId" [delete: restrict]
Ref "FK_Awards_Projects_ProjectId":"Projects"."Id" < "Awards"."ProjectId" [delete: set null]
Ref "FK_Awards_Users_ApprovedBy":"Users"."Id" < "Awards"."ApprovedBy"
Ref "FK_Awards_Users_CreatedBy":"Users"."Id" < "Awards"."CreatedBy"
Ref "FK_Awards_Users_UpdatedBy":"Users"."Id" < "Awards"."UpdatedBy"
Ref "FK_Beneficiaries_Awards_AwardId":"Awards"."Id" < "Beneficiaries"."AwardId" [delete: restrict]
Ref "FK_Beneficiaries_Users_CreatedBy":"Users"."Id" < "Beneficiaries"."CreatedBy"
Ref "FK_ChangeRequests_Projects_ProjectId":"Projects"."Id" < "ChangeRequests"."ProjectId" [delete: restrict]
Ref "FK_ChangeRequests_Users_ApprovedBy":"Users"."Id" < "ChangeRequests"."ApprovedBy"
Ref "FK_ChangeRequests_Users_CreatedBy":"Users"."Id" < "ChangeRequests"."CreatedBy"
Ref "FK_ComplianceItems_Projects_ProjectId":"Projects"."Id" < "ComplianceItems"."ProjectId" [delete: restrict]
Ref "FK_ComplianceItems_Users_CreatedBy":"Users"."Id" < "ComplianceItems"."CreatedBy"
Ref "FK_ComplianceItems_Users_VerifiedBy":"Users"."Id" < "ComplianceItems"."VerifiedBy"
Ref "FK_Contracts_Awards_AwardId":"Awards"."Id" < "Contracts"."AwardId" [delete: restrict]
Ref "FK_Contracts_Users_CreatedBy":"Users"."Id" < "Contracts"."CreatedBy"
Ref "FK_Disbursements_Projects_ProjectId":"Projects"."Id" < "Disbursements"."ProjectId" [delete: restrict]
Ref "FK_Disbursements_Users_ApprovedBy":"Users"."Id" < "Disbursements"."ApprovedBy"
Ref "FK_Disbursements_Users_CreatedBy":"Users"."Id" < "Disbursements"."CreatedBy"
Ref "FK_Disbursements_Users_UpdatedBy":"Users"."Id" < "Disbursements"."UpdatedBy"
Ref "FK_Evidences_Indicators_IndicatorId":"Indicators"."Id" < "Evidences"."IndicatorId"
Ref "FK_Evidences_Milestones_MilestoneId":"Milestones"."Id" < "Evidences"."MilestoneId"
Ref "FK_Evidences_Projects_ProjectId":"Projects"."Id" < "Evidences"."ProjectId" [delete: restrict]
Ref "FK_Evidences_Users_CreatedBy":"Users"."Id" < "Evidences"."CreatedBy"
Ref "FK_Evidences_Users_UpdatedBy":"Users"."Id" < "Evidences"."UpdatedBy"
Ref "FK_Indicators_Projects_ProjectId":"Projects"."Id" < "Indicators"."ProjectId" [delete: restrict]
Ref "FK_Indicators_Users_CreatedBy":"Users"."Id" < "Indicators"."CreatedBy"
Ref "FK_Instruments_Users_CreatedBy":"Users"."Id" < "Instruments"."CreatedBy"
Ref "FK_Issues_Projects_ProjectId":"Projects"."Id" < "Issues"."ProjectId" [delete: restrict]
Ref "FK_Issues_Users_CreatedBy":"Users"."Id" < "Issues"."CreatedBy"
Ref "FK_Milestones_Projects_ProjectId":"Projects"."Id" < "Milestones"."ProjectId" [delete: restrict]
Ref "FK_Milestones_Users_CreatedBy":"Users"."Id" < "Milestones"."CreatedBy"
Ref "FK_Milestones_Users_UpdatedBy":"Users"."Id" < "Milestones"."UpdatedBy"
Ref "FK_Organisations_Users_CreatedBy":"Users"."Id" < "Organisations"."CreatedBy"
Ref "FK_Outcomes_Beneficiaries_BeneficiaryId":"Beneficiaries"."Id" < "Outcomes"."BeneficiaryId" [delete: restrict]
Ref "FK_Outcomes_Users_CreatedBy":"Users"."Id" < "Outcomes"."CreatedBy"
Ref "FK_Portfolios_Users_CreatedBy":"Users"."Id" < "Portfolios"."CreatedBy"
Ref "FK_Portfolios_Users_OwnedBy":"Users"."Id" < "Portfolios"."OwnedBy"
Ref "FK_Programmes_Instruments_InstrumentId":"Instruments"."Id" < "Programmes"."InstrumentId" [delete: restrict]
Ref "FK_Programmes_Portfolios_PortfolioId":"Portfolios"."Id" < "Programmes"."PortfolioId" [delete: restrict]
Ref "FK_Programmes_Users_CreatedBy":"Users"."Id" < "Programmes"."CreatedBy"
Ref "FK_Programmes_Users_OwnedBy":"Users"."Id" < "Programmes"."OwnedBy" [delete: restrict]
Ref "FK_Programmes_Users_UpdatedBy":"Users"."Id" < "Programmes"."UpdatedBy"
Ref "FK_Projects_Programmes_ProgrammeId":"Programmes"."Id" < "Projects"."ProgrammeId" [delete: restrict]
Ref "FK_Projects_Users_CreatedBy":"Users"."Id" < "Projects"."CreatedBy"
Ref "FK_Projects_Users_UpdatedBy":"Users"."Id" < "Projects"."UpdatedBy"
Ref "FK_Risks_Projects_ProjectId":"Projects"."Id" < "Risks"."ProjectId" [delete: restrict]
Ref "FK_Risks_Users_CreatedBy":"Users"."Id" < "Risks"."CreatedBy"
Ref "FK_Rules_Programmes_ProgrammeId":"Programmes"."Id" < "Rules"."ProgrammeId" [delete: restrict]
Ref "FK_Rules_Users_ApprovedBy":"Users"."Id" < "Rules"."ApprovedBy"
Ref "FK_Rules_Users_CreatedBy":"Users"."Id" < "Rules"."CreatedBy"
Ref "FK_Rules_Users_UpdatedBy":"Users"."Id" < "Rules"."UpdatedBy"
Ref "FK_SiteVisits_Projects_ProjectId":"Projects"."Id" < "SiteVisits"."ProjectId" [delete: restrict]
Ref "FK_SiteVisits_Users_CreatedBy":"Users"."Id" < "SiteVisits"."CreatedBy"