diff --git a/PostFundManagement.Domain/Class1.cs b/PostFundManagement.Domain/Class1.cs deleted file mode 100644 index 48ddb5b..0000000 --- a/PostFundManagement.Domain/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace PostFundManagement.Domain; - -public class Class1 -{ - -} diff --git a/PostFundManagement.Domain/Configuration/Instrument.cs b/PostFundManagement.Domain/Configuration/Instrument.cs new file mode 100644 index 0000000..759baf4 --- /dev/null +++ b/PostFundManagement.Domain/Configuration/Instrument.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Configuration; + +public sealed class Instrument : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable(nameof(Entities.Instrument).Pluralize()); + + builder.HasKey(pk => pk.Id); + builder.Property(f => f.Code).IsRequired().HasMaxLength(50); + builder.Property(f => f.Name).IsRequired().HasMaxLength(256); + builder.Property(f => f.Description).IsRequired(false).HasMaxLength(1024); + builder.Property(f => f.Status).IsRequired().HasDefaultValue(ActivityStatus.Inactive); + builder.Property(f => f.CreatedBy).IsRequired(); + builder.Property(f => f.CreatedAt).IsRequired().HasDefaultValueSql("now()"); + + builder.HasOne(f => f.Creator) + .WithMany() + .HasForeignKey(f => f.CreatedBy) + .OnDelete(DeleteBehavior.NoAction); + } +} diff --git a/PostFundManagement.Domain/Configuration/Portfolio.cs b/PostFundManagement.Domain/Configuration/Portfolio.cs new file mode 100644 index 0000000..8fe363a --- /dev/null +++ b/PostFundManagement.Domain/Configuration/Portfolio.cs @@ -0,0 +1,27 @@ +namespace PostFundManagement.Domain.Configuration; + +public sealed class Portfolio : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable(nameof(Entities.Portfolio).Pluralize()); + + builder.HasKey(pk => pk.Id); + builder.Property(f => f.CreatedBy).IsRequired(); + builder.Property(f => f.OwnedBy).IsRequired(false); + builder.Property(f => f.CreatedAt).IsRequired().HasDefaultValueSql("now()"); + builder.Property(f => f.Name).IsRequired().HasMaxLength(256); + builder.Property(f => f.Description).IsRequired(false).HasMaxLength(1024); + + builder.HasOne(f => f.Creator) + .WithMany() + .HasForeignKey(f => f.CreatedBy) + .IsRequired() + .OnDelete(DeleteBehavior.NoAction); + + builder.HasOne(f => f.Owner) + .WithMany() + .HasForeignKey(f => f.OwnedBy) + .OnDelete(DeleteBehavior.NoAction); + } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Configuration/Programme.cs b/PostFundManagement.Domain/Configuration/Programme.cs new file mode 100644 index 0000000..b69aec6 --- /dev/null +++ b/PostFundManagement.Domain/Configuration/Programme.cs @@ -0,0 +1,43 @@ +namespace PostFundManagement.Domain.Configuration; + +public sealed class Programme : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable(nameof(Entities.Programme).Pluralize()); + + builder.HasKey(pk => pk.Id); + builder.Property(f => f.PortfolioId).IsRequired(); + builder.Property(f => f.InstrumentId).IsRequired(); + builder.Property(f => f.OwnedBy).IsRequired(false); + builder.Property(f => f.CreatedBy).IsRequired(); + builder.Property(f => f.UpdatedBy).IsRequired(false); + builder.Property(f => f.CreatedAt).IsRequired().HasDefaultValueSql("now()"); + builder.Property(f => f.UpdatedAt).IsRequired(false); + builder.Property(f => f.Name).IsRequired().HasMaxLength(256); + builder.Property(f => f.Status).IsRequired(false).HasDefaultValue(ApprovalStatus.Pending); + + builder.HasOne(f => f.Portfolio) + .WithMany(f => f.Programmes) + .HasForeignKey(f => f.PortfolioId) + .IsRequired() + .OnDelete(DeleteBehavior.NoAction); + + builder.HasOne(f => f.Instrument) + .WithMany(f => f.Programmes) + .HasForeignKey(f => f.InstrumentId) + .IsRequired() + .OnDelete(DeleteBehavior.NoAction); + + builder.HasOne(f => f.Creator) + .WithMany() + .HasForeignKey(f => f.CreatedBy) + .IsRequired() + .OnDelete(DeleteBehavior.NoAction); + + builder.HasOne(f => f.Owner) + .WithMany() + .HasForeignKey(f => f.OwnedBy) + .OnDelete(DeleteBehavior.NoAction); + } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Configuration/User.cs b/PostFundManagement.Domain/Configuration/User.cs new file mode 100644 index 0000000..2a67850 --- /dev/null +++ b/PostFundManagement.Domain/Configuration/User.cs @@ -0,0 +1,14 @@ +namespace PostFundManagement.Domain.Configuration; + +public sealed class User : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable(nameof(Entities.User).Pluralize()); + + builder.HasKey(pk => pk.Id); + builder.Property(f => f.Email).IsRequired().HasMaxLength(256); + builder.Property(f => f.Status).IsRequired().HasDefaultValue(ActivityStatus.Inactive); + builder.Property(f => f.LastLoginAt).IsRequired(false); + } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Entities/Instrument.cs b/PostFundManagement.Domain/Entities/Instrument.cs new file mode 100644 index 0000000..b3be8e0 --- /dev/null +++ b/PostFundManagement.Domain/Entities/Instrument.cs @@ -0,0 +1,9 @@ +namespace PostFundManagement.Domain.Entities; + +[EntityTypeConfiguration] +public class Instrument : Models.Instrument +{ + public virtual User? Creator { get; set; } + + public virtual ICollection Programmes { get; set; } = []; +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Entities/Portfolio.cs b/PostFundManagement.Domain/Entities/Portfolio.cs new file mode 100644 index 0000000..48b30e6 --- /dev/null +++ b/PostFundManagement.Domain/Entities/Portfolio.cs @@ -0,0 +1,11 @@ +namespace PostFundManagement.Domain.Entities; + +[EntityTypeConfiguration] +public class Portfolio : Models.Portfolio +{ + public virtual User? Creator { get; set; } + + public virtual User? Owner { get; set; } + + public virtual ICollection Programmes { get; set; } = []; +} diff --git a/PostFundManagement.Domain/Entities/Programme.cs b/PostFundManagement.Domain/Entities/Programme.cs new file mode 100644 index 0000000..7f3d4d2 --- /dev/null +++ b/PostFundManagement.Domain/Entities/Programme.cs @@ -0,0 +1,13 @@ +namespace PostFundManagement.Domain.Entities; + +[EntityTypeConfiguration] +public class Programme : Models.Programme +{ + public virtual User? Creator { get; set; } + + public virtual User? Owner { get; set; } + + public virtual Portfolio? Portfolio { get; set; } + + public virtual Instrument? Instrument { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Entities/User.cs b/PostFundManagement.Domain/Entities/User.cs new file mode 100644 index 0000000..723864a --- /dev/null +++ b/PostFundManagement.Domain/Entities/User.cs @@ -0,0 +1,4 @@ +namespace PostFundManagement.Domain.Entities; + +[EntityTypeConfiguration] +public sealed class User : Models.User; \ No newline at end of file diff --git a/PostFundManagement.Domain/Enums.cs b/PostFundManagement.Domain/Enums.cs new file mode 100644 index 0000000..a1041ac --- /dev/null +++ b/PostFundManagement.Domain/Enums.cs @@ -0,0 +1,64 @@ +namespace PostFundManagement.Domain; + +public enum Priority : int +{ + Low = 1, + Medium = 2, + High = 3, + Critical = 4 +} + +public enum UnitOfMeasure : int +{ + Count = 1, + Percentage = 2, + Currency = 3, + Area = 4, + Weight = 5, + Volume = 6, + DurationDays = 7, + DurationMonths = 8, + Ratio = 9 +} +public enum ContractStatus : int +{ + Draft = 1, + PendingApproval = 2, + Active = 3, + Expired = 4, + Terminated = 5, + Amended = 6 +} + +public enum RiskLikelihood : int +{ + Rare = 1, + Unlikely = 2, + Possible = 3, + Likely = 4, + AlmostCertain = 5 +} + +public enum RiskImpact : int +{ + Negligible = 1, + Minor = 2, + Moderate = 3, + Major = 4, + Critical = 5 +} + +public enum ApprovalStatus : int +{ + Pending = 1, + Review = 2, + Approved = 3, + Rejected = 4 +} + +public enum ActivityStatus : int +{ + Active = 1, + Inactive = 2, + Disabled = 3 +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/AuditLog.cs b/PostFundManagement.Domain/Models/AuditLog.cs new file mode 100644 index 0000000..91ed184 --- /dev/null +++ b/PostFundManagement.Domain/Models/AuditLog.cs @@ -0,0 +1,18 @@ +namespace PostFundManagement.Domain.Models; + +public class AuditLog +{ + public long Id { get; set; } + + public string? EntityName { get; set; } + + public long EntityId { get; set; } + + public string? Action { get; set; } + + public string[]? Changes { get; set; } + + public Guid PerformedBy { get; set; } + + public DateTime Timestamp { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Award.cs b/PostFundManagement.Domain/Models/Award.cs new file mode 100644 index 0000000..1a97f93 --- /dev/null +++ b/PostFundManagement.Domain/Models/Award.cs @@ -0,0 +1,26 @@ +namespace PostFundManagement.Domain.Models; + +public class Award +{ + public long Id { get; set; } + + public long OrganisationId { get; set; } + + public long ProgrammeId { get; set; } + + public long? ProjectId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public Guid? ApprovedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime UpdatedAt { get; set; } + + public ApprovalStatus Status { get; set; } + + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Beneficiary.cs b/PostFundManagement.Domain/Models/Beneficiary.cs new file mode 100644 index 0000000..b7aefb7 --- /dev/null +++ b/PostFundManagement.Domain/Models/Beneficiary.cs @@ -0,0 +1,24 @@ +namespace PostFundManagement.Domain.Models; + +public class Beneficiary +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public Guid UserId { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public string? Name { get; set; } + + public string? Category { get; set; } + + public int TargetCount { get; set; } + + public int ReachedCount { get; set; } + + public string? Location { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Budget.cs b/PostFundManagement.Domain/Models/Budget.cs new file mode 100644 index 0000000..c4b6346 --- /dev/null +++ b/PostFundManagement.Domain/Models/Budget.cs @@ -0,0 +1,20 @@ +namespace PostFundManagement.Domain.Models; + +public class Budget +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? ApprovedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public string? Name { get; set; } + + public decimal Amount { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/ChangeRequest.cs b/PostFundManagement.Domain/Models/ChangeRequest.cs new file mode 100644 index 0000000..65f6358 --- /dev/null +++ b/PostFundManagement.Domain/Models/ChangeRequest.cs @@ -0,0 +1,26 @@ +namespace PostFundManagement.Domain.Models; + +public class ChangeRequest +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public string? Title { get; set; } + + public string? Justification { get; set; } + + public decimal? RevisedBudget { get; set; } + + public DateTime? RevisedEndedAt { get; set; } + + public ApprovalStatus Status { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? ApprovedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/ComplianceItem.cs b/PostFundManagement.Domain/Models/ComplianceItem.cs new file mode 100644 index 0000000..4eccdb3 --- /dev/null +++ b/PostFundManagement.Domain/Models/ComplianceItem.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class ComplianceItem +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public string? Title { get; set; } + + public string? Requirements { get; set; } + + public ApprovalStatus Status { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? VerifiedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? VerifiedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Contract.cs b/PostFundManagement.Domain/Models/Contract.cs new file mode 100644 index 0000000..2e0b197 --- /dev/null +++ b/PostFundManagement.Domain/Models/Contract.cs @@ -0,0 +1,24 @@ +namespace PostFundManagement.Domain.Models; + +public class Contract +{ + public long Id { get; set; } + + public long AwardId { get; set; } + + public string? ExternalSignatureId { get; set; } + + public string? SignedDocumentUrl { get; set; } + + public DateTime? EffectiveAt { get; set; } + + public DateTime? ExpiresAt { get; set; } + + public decimal TotalValue { get; set; } + + public ContractStatus Status { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Disbursement.cs b/PostFundManagement.Domain/Models/Disbursement.cs new file mode 100644 index 0000000..e06e7e1 --- /dev/null +++ b/PostFundManagement.Domain/Models/Disbursement.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class Disbursement +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public long? MilestoneId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public decimal Amount { get; set; } + + public ApprovalStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Evidence.cs b/PostFundManagement.Domain/Models/Evidence.cs new file mode 100644 index 0000000..14c86a9 --- /dev/null +++ b/PostFundManagement.Domain/Models/Evidence.cs @@ -0,0 +1,26 @@ +namespace PostFundManagement.Domain.Models; + +public class Evidence +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public long? MilestoneId { get; set; } + + public long? IndicatorId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public int Version { get; set; } + + public string? DocumentUrl { get; set; } + + public ApprovalStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Indicator.cs b/PostFundManagement.Domain/Models/Indicator.cs new file mode 100644 index 0000000..1787d4f --- /dev/null +++ b/PostFundManagement.Domain/Models/Indicator.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class Indicator +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public string? Name { get; set; } + + public UnitOfMeasure? UnitOfMeasure { get; set; } + + public decimal BaselineAmount { get; set; } + + public decimal TargetAmount { get; set; } + + public decimal ActualAmount { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Instrument.cs b/PostFundManagement.Domain/Models/Instrument.cs new file mode 100644 index 0000000..1ddbfd3 --- /dev/null +++ b/PostFundManagement.Domain/Models/Instrument.cs @@ -0,0 +1,18 @@ +namespace PostFundManagement.Domain.Models; + +public class Instrument +{ + public long Id { get; set; } + + public string? Code { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } + + public ActivityStatus Status { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Issue.cs b/PostFundManagement.Domain/Models/Issue.cs new file mode 100644 index 0000000..e9ad515 --- /dev/null +++ b/PostFundManagement.Domain/Models/Issue.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class Issue +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public string? Title { get; set; } + + public string? Description { get; set; } + + public Priority Priority { get; set; } + + public ActivityStatus Status { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? ResolvedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Milestone.cs b/PostFundManagement.Domain/Models/Milestone.cs new file mode 100644 index 0000000..1da57b7 --- /dev/null +++ b/PostFundManagement.Domain/Models/Milestone.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class Milestone +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public DateTime DueAt { get; set; } + + public string? Name { get; set; } + + public ApprovalStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Organisation.cs b/PostFundManagement.Domain/Models/Organisation.cs new file mode 100644 index 0000000..eeb71c1 --- /dev/null +++ b/PostFundManagement.Domain/Models/Organisation.cs @@ -0,0 +1,20 @@ +namespace PostFundManagement.Domain.Models; + +public class Organisation +{ + public long Id { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public string? RegistrationNo { get; set; } + + public string? Name { get; set; } + + public string? Email { get; set; } + + public int Type { get; set; } + + public ActivityStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Outcome.cs b/PostFundManagement.Domain/Models/Outcome.cs new file mode 100644 index 0000000..768b91d --- /dev/null +++ b/PostFundManagement.Domain/Models/Outcome.cs @@ -0,0 +1,16 @@ +namespace PostFundManagement.Domain.Models; + +public class Outcome +{ + public long Id { get; set; } + + public long BeneficiaryId { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Portfolio.cs b/PostFundManagement.Domain/Models/Portfolio.cs new file mode 100644 index 0000000..47d8420 --- /dev/null +++ b/PostFundManagement.Domain/Models/Portfolio.cs @@ -0,0 +1,16 @@ +namespace PostFundManagement.Domain.Models; + +public class Portfolio +{ + public long Id { get; set; } + + public Guid OwnedBy { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Programme.cs b/PostFundManagement.Domain/Models/Programme.cs new file mode 100644 index 0000000..d04372d --- /dev/null +++ b/PostFundManagement.Domain/Models/Programme.cs @@ -0,0 +1,24 @@ +namespace PostFundManagement.Domain.Models; + +public class Programme +{ + public long Id { get; set; } + + public long PortfolioId { get; set; } + + public long InstrumentId { get; set; } + + public Guid OwnedBy { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public string? Name { get; set; } + + public ApprovalStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Project.cs b/PostFundManagement.Domain/Models/Project.cs new file mode 100644 index 0000000..4a09337 --- /dev/null +++ b/PostFundManagement.Domain/Models/Project.cs @@ -0,0 +1,26 @@ +namespace PostFundManagement.Domain.Models; + +public class Project +{ + public long Id { get; set; } + + public long ProgrammeId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public DateTime? StartedAt { get; set; } + + public DateTime? EndedAt { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } + + public ApprovalStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Risk.cs b/PostFundManagement.Domain/Models/Risk.cs new file mode 100644 index 0000000..e22b458 --- /dev/null +++ b/PostFundManagement.Domain/Models/Risk.cs @@ -0,0 +1,20 @@ +namespace PostFundManagement.Domain.Models; + +public class Risk +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public RiskLikelihood Likelihood { get; set; } + + public RiskImpact Impact { get; set; } + + public string? Name { get; set; } + + public string? Description { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/Rule.cs b/PostFundManagement.Domain/Models/Rule.cs new file mode 100644 index 0000000..ba15a16 --- /dev/null +++ b/PostFundManagement.Domain/Models/Rule.cs @@ -0,0 +1,22 @@ +namespace PostFundManagement.Domain.Models; + +public class Rule +{ + public long Id { get; set; } + + public long ProgrammeId { get; set; } + + public Guid CreatedBy { get; set; } + + public Guid? UpdatedBy { get; set; } + + public DateTime CreatedAt { get; set; } + + public DateTime? UpdatedAt { get; set; } + + public string? Name { get; set; } + + public int Version { get; set; } + + public ActivityStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/SiteVisit.cs b/PostFundManagement.Domain/Models/SiteVisit.cs new file mode 100644 index 0000000..1f8e0fe --- /dev/null +++ b/PostFundManagement.Domain/Models/SiteVisit.cs @@ -0,0 +1,20 @@ +namespace PostFundManagement.Domain.Models; + +public class SiteVisit +{ + public long Id { get; set; } + + public long ProjectId { get; set; } + + public DateTime VisitedAt { get; set; } + + public string? InspectorName { get; set; } + + public string? Findings { get; set; } + + public ApprovalStatus VerificationStatus { get; set; } + + public Guid CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/Models/User.cs b/PostFundManagement.Domain/Models/User.cs new file mode 100644 index 0000000..15cb816 --- /dev/null +++ b/PostFundManagement.Domain/Models/User.cs @@ -0,0 +1,12 @@ +namespace PostFundManagement.Domain.Models; + +public class User +{ + public Guid Id { get; set; } + + public DateTime LastLoginAt { get; set; } + + public string? Email { get; set; } + + public ActivityStatus Status { get; set; } +} \ No newline at end of file diff --git a/PostFundManagement.Domain/PostFundManagement.Domain.csproj b/PostFundManagement.Domain/PostFundManagement.Domain.csproj index b760144..48eb5a5 100644 --- a/PostFundManagement.Domain/PostFundManagement.Domain.csproj +++ b/PostFundManagement.Domain/PostFundManagement.Domain.csproj @@ -6,4 +6,30 @@ enable + + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + diff --git a/PostFundManagement.Infrastructure/Class1.cs b/PostFundManagement.Infrastructure/Class1.cs deleted file mode 100644 index 804abcc..0000000 --- a/PostFundManagement.Infrastructure/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace PostFundManagement.Infrastructure; - -public class Class1 -{ - -} diff --git a/PostFundManagement.Infrastructure/Database/ApplicationDbContext.cs b/PostFundManagement.Infrastructure/Database/ApplicationDbContext.cs new file mode 100644 index 0000000..a80be6b --- /dev/null +++ b/PostFundManagement.Infrastructure/Database/ApplicationDbContext.cs @@ -0,0 +1,12 @@ +using PostFundManagement.Domain.Entities; + +namespace PostFundManagement.Infrastructure.Database; + +public sealed class ApplicationDbContext(DbContextOptions options) : DbContext(options) +{ + public DbSet Portfolios => Set(); + + public DbSet Instruments => Set(); + + public DbSet Users => Set(); +} \ No newline at end of file diff --git a/PostFundManagement.Infrastructure/PostFundManagement.Infrastructure.csproj b/PostFundManagement.Infrastructure/PostFundManagement.Infrastructure.csproj index b760144..694b6af 100644 --- a/PostFundManagement.Infrastructure/PostFundManagement.Infrastructure.csproj +++ b/PostFundManagement.Infrastructure/PostFundManagement.Infrastructure.csproj @@ -6,4 +6,12 @@ enable + + + + + + + + diff --git a/PostFundManagement.code-workspace b/PostFundManagement.code-workspace new file mode 100644 index 0000000..876a149 --- /dev/null +++ b/PostFundManagement.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +} \ No newline at end of file