Commit 4ac73670 authored by hasan khaddour's avatar hasan khaddour

fix s .

parent c1f5afe1
...@@ -5,7 +5,7 @@ namespace PSManagement.Application.Customers.Common ...@@ -5,7 +5,7 @@ namespace PSManagement.Application.Customers.Common
{ {
public class ContactInfoDTO public class ContactInfoDTO
{ {
public String ConatctValue { get; set; } public String ContactValue { get; set; }
public String ContactType { get; set; } public String ContactType { get; set; }
} }
......
using PSManagement.Domain.Identity.Entities; using PSManagement.Domain.Identity.Entities;
using PSManagement.Domain.Projects.Aggregate; using PSManagement.Domain.Projects.Aggregate;
using PSManagement.Domain.Projects.Entities;
using PSManagement.Domain.Tracking;
using PSManagement.Domain.Tracking.Entities; using PSManagement.Domain.Tracking.Entities;
using PSManagement.SharedKernel.Aggregate; using PSManagement.SharedKernel.Aggregate;
using PSManagement.SharedKernel.Entities; using PSManagement.SharedKernel.Entities;
...@@ -17,9 +19,12 @@ namespace PSManagement.Domain.Employees.Entities ...@@ -17,9 +19,12 @@ namespace PSManagement.Domain.Employees.Entities
public int UserId { get; set; } public int UserId { get; set; }
public User User { get; set; } public User User { get; set; }
public PersonalInfo PersonalInfo { get; set; } public PersonalInfo PersonalInfo { get; set; }
//public ICollection<Project> Projects { get; set; } public ICollection<Project> Projects { get; set; }
public ICollection<EmployeeTrack> EmployeeTracks { get; set; }
public Availability Availability { get; set; } public Availability Availability { get; set; }
public ICollection<EmployeeWork> EmployeeWorks { get; set; }
public ICollection<EmployeeParticipate> EmployeeParticipates { get; set; }
public Employee() public Employee()
{ {
......
...@@ -5,6 +5,7 @@ using PSManagement.Domain.ProjectTypes.Entities; ...@@ -5,6 +5,7 @@ using PSManagement.Domain.ProjectTypes.Entities;
using PSManagement.Domain.Steps.Entities; using PSManagement.Domain.Steps.Entities;
using PSManagement.Domain.Tracking; using PSManagement.Domain.Tracking;
using PSManagement.SharedKernel.Aggregate; using PSManagement.SharedKernel.Aggregate;
using PSManagement.SharedKernel.ValueObjects;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
...@@ -14,23 +15,43 @@ namespace PSManagement.Domain.Projects.Aggregate ...@@ -14,23 +15,43 @@ namespace PSManagement.Domain.Projects.Aggregate
{ {
public class Project : IAggregateRoot public class Project : IAggregateRoot
{ {
// information about the project itself
public ProposalInfo ProposalInfo { get; set; } public ProposalInfo ProposalInfo { get; set; }
public ProjectInfo ProjectInfo { get; set; } public ProjectInfo ProjectInfo { get; set; }
public ProjectType ProjectType { get; set; } //public ProjectType ProjectType { get; set; }
public ProjectStatus ProjectStatus { get; set; } public ProjectStatus ProjectStatus { get; set; }
public Aggreement ProjectAggreement { get; set; } public Aggreement ProjectAggreement { get; set; }
// information about who lead and execute the project
public int TeamLeaderId { get; set; }
public Employee TeamLeader { get; set; } public Employee TeamLeader { get; set; }
public int ProjectManagerId { get; set; }
public Employee ProjectManager { get; set; }
public Department Executer { get; set; } public Department Executer { get; set; }
// the proposer of the project
public Customer Proposer { get; set; } public Customer Proposer { get; set; }
public ICollection<Employee> Participants { get; set; } //
public ICollection<Step> Steps { get; set; } public ICollection<Step> Steps { get; set; }
public ICollection<Track> Tracks { get; set; } public ICollection<Employee> Participants { get; set; }
public ICollection<Attachment> Attachments { get; set; } public ICollection<Attachment> Attachments { get; set; }
// finincial plan
public FinincialFund FinincialFund { get; set; }
public ICollection<EmployeeParticipate> EmployeeParticipates { get; set; }
public ICollection<Track> Tracks { get; set; }
public Project() public Project()
{ {
} }
} }
public record FinincialFund (
string FinicialStatus,
string Source
);
} }
using PSManagement.Domain.Employees.Entities;
using PSManagement.Domain.Projects.Aggregate;
using PSManagement.SharedKernel.Entities;
using System;
namespace PSManagement.Domain.Projects.Entities
{
public class EmployeeParticipate : BaseEntity
{
public int EmployeeId { get; set; }
public int ProjectId { get; set; }
public Employee Employee { get; set; }
public Project Project { get; set; }
public int PartialTimeRatio { get; set; }
public string Role { get; set; }
}
}
...@@ -17,14 +17,16 @@ namespace PSManagement.Domain.Steps.Entities ...@@ -17,14 +17,16 @@ namespace PSManagement.Domain.Steps.Entities
public string StepName { get; set; } public string StepName { get; set; }
public string Description { get; set; } public string Description { get; set; }
public int Duration { get; set; } public int Duration { get; set; }
public int CurrentCompletionRatio { get; set; }
public int Weight { get; set; }
public DateTime StartDate { get; set; } public DateTime StartDate { get; set; }
public int ProjectId { get; set; } public int ProjectId { get; set; }
public Project Project { get; set; } public Project Project { get; set; }
public ICollection<Item> Purchases { get; set; }
public ICollection<Employee> Participants { get; set; }
public ICollection<StepTrack> StepTracks { get; set; } public ICollection<StepTrack> StepTracks { get; set; }
//public ICollection<Item> Purchases { get; set; }
//public ICollection<Employee> Participants { get; set; }
public Step() public Step()
{ {
......
using PSManagement.Domain.Employees.Entities;
using PSManagement.SharedKernel.Entities;
using System;
namespace PSManagement.Domain.Tracking
{
public class EmployeeTrack :BaseEntity
{
public int EmloyeeId { get; set; }
public int TrackId { get; set; }
public Employee Employee { get; set; }
public Track Track { get; set; }
public int WorkingHours { get; set; }
public String PerformedWork { get; set; }
public String AssignedWork { get; set; }
//public ICollection<EmployeeWork> EmployeeWorks { get; set; }
}
}
...@@ -10,7 +10,8 @@ namespace PSManagement.Domain.Tracking.Entities ...@@ -10,7 +10,8 @@ namespace PSManagement.Domain.Tracking.Entities
public Step Step { get; set; } public Step Step { get; set; }
public int TrackId { get; set; } public int TrackId { get; set; }
public Track Track { get; set; } public Track Track { get; set; }
public ICollection<EmployeeWork> EmployeeWorks { get; set; } public int ExecutionRatio { get; set; }
//public ICollection<EmployeeWork> EmployeeWorks { get; set; }
public StepTrack() public StepTrack()
{ {
......
using PSManagement.Domain.Projects.Aggregate; using PSManagement.Domain.Employees.Entities;
using PSManagement.Domain.Projects.Aggregate;
using PSManagement.Domain.Steps.Entities; using PSManagement.Domain.Steps.Entities;
using PSManagement.Domain.Tracking.Entities; using PSManagement.Domain.Tracking.Entities;
using PSManagement.SharedKernel.Aggregate; using PSManagement.SharedKernel.Aggregate;
...@@ -18,7 +19,8 @@ namespace PSManagement.Domain.Tracking ...@@ -18,7 +19,8 @@ namespace PSManagement.Domain.Tracking
public int ProjectId { get; set; } public int ProjectId { get; set; }
public Project Project { get; set; } public Project Project { get; set; }
public ICollection<StepTrack> StepTracks { get; set; } public ICollection<StepTrack> StepTracks { get; set; }
public ICollection<Employee> TrackedEmployees { get; set; }
public ICollection<EmployeeTrack> EmployeeTracks { get; set; }
public Track() public Track()
{ {
......
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Metadata.Builders;
using PSManagement.Domain.Employees.Entities;
using PSManagement.Domain.Projects.Aggregate; using PSManagement.Domain.Projects.Aggregate;
using PSManagement.Domain.Projects.Entities;
namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
{ {
...@@ -8,6 +10,16 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration ...@@ -8,6 +10,16 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
{ {
public void Configure(EntityTypeBuilder<Project> builder) public void Configure(EntityTypeBuilder<Project> builder)
{ {
builder.HasMany(e => e.Participants)
.WithMany(e => e.Projects)
.UsingEntity<EmployeeParticipate>(
l => l.HasOne<Employee>(e => e.Employee)
.WithMany(e => e.EmployeeParticipates)
.HasForeignKey(e => e.EmployeeId),
r => r.HasOne<Project>(e => e.Project)
.WithMany(e => e.EmployeeParticipates)
.HasForeignKey(e => e.ProjectId)
);
builder.OwnsOne(c => c.ProjectAggreement, builder.OwnsOne(c => c.ProjectAggreement,
p => { p => {
...@@ -24,16 +36,34 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration ...@@ -24,16 +36,34 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
} }
); );
builder.Property(e => e.Participants); builder.HasOne(e => e.TeamLeader)
.WithMany()
.HasForeignKey(e => e.TeamLeaderId)
.OnDelete(DeleteBehavior.Restrict)
.IsRequired(false);
builder.HasOne(e => e.ProjectManager)
.WithMany()
.HasForeignKey(e => e.ProjectManagerId)
.OnDelete(DeleteBehavior.Restrict)
.IsRequired(false);
builder.OwnsOne(c => c.ProposalInfo, builder.OwnsOne(c => c.ProposalInfo,
p => { p => {
p.Property(e => e.ProposingBookDate).HasColumnName("ProposingBookDate"); p.Property(e => e.ProposingBookDate).HasColumnName("ProposingBookDate");
p.Property(e => e.ProposingBookNumber).HasColumnName("ProposingBookNumber"); p.Property(e => e.ProposingBookNumber).HasColumnName("ProposingBookNumber");
} }
); );
builder.OwnsOne(c => c.FinincialFund,
p => {
p.Property(e => e.FinicialStatus).HasColumnName("FinicialStatus");
p.Property(e => e.Source).HasColumnName("FinicialSource");
}
);
builder.HasMany(e => e.Tracks).WithOne(e => e.Project).HasForeignKey(e => e.ProjectId); builder.HasMany(e => e.Tracks).WithOne(e => e.Project).HasForeignKey(e => e.ProjectId);
builder.HasOne(e => e.ProjectType).WithMany(r => r.Projects);
builder.Ignore(e => e.Participants);
} }
} }
} }
...@@ -8,7 +8,9 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration ...@@ -8,7 +8,9 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
public class TrackEntityConfiguration : public class TrackEntityConfiguration :
IEntityTypeConfiguration<Track> , IEntityTypeConfiguration<Track> ,
IEntityTypeConfiguration<StepTrack>, IEntityTypeConfiguration<StepTrack>,
IEntityTypeConfiguration<EmployeeWork> IEntityTypeConfiguration<EmployeeTrack>
//,
//IEntityTypeConfiguration<EmployeeWork>
{ {
...@@ -19,7 +21,16 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration ...@@ -19,7 +21,16 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
.WithMany(p => p.Tracks) .WithMany(p => p.Tracks)
.HasForeignKey(t => t.ProjectId) .HasForeignKey(t => t.ProjectId)
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
//builder.HasMany(e => e.TrackedEmployees)
// .WithMany(e => e.trac)
// .UsingEntity<EmployeeParticipate>(
// l => l.HasOne<Employee>(e => e.Employee)
// .WithMany(e => e.EmployeeParticipates)
// .HasForeignKey(e => e.EmployeeId),
// r => r.HasOne<Project>(e => e.Project)
// .WithMany(e => e.EmployeeParticipates)
// .HasForeignKey(e => e.ProjectId)
// );
} }
public void Configure(EntityTypeBuilder<StepTrack> builder) public void Configure(EntityTypeBuilder<StepTrack> builder)
{ {
...@@ -36,20 +47,30 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration ...@@ -36,20 +47,30 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
} }
public void Configure(EntityTypeBuilder<EmployeeWork> builder)
public void Configure(EntityTypeBuilder<EmployeeTrack> builder)
{ {
builder.HasOne(ew => ew.StepTrack) builder.HasOne(st => st.Employee)
.WithMany(st => st.EmployeeWorks) .WithMany(s => s.EmployeeTracks)
.HasForeignKey(ew => ew.StepTrackId) .HasForeignKey(st => st.EmloyeeId)
.OnDelete(DeleteBehavior.Restrict); ; ;
}
//public void Configure(EntityTypeBuilder<EmployeeWork> builder)
//{
// //builder.HasOne(ew => ew.StepTrack)
// //.WithMany(st => st.EmployeeWorks)
// //.HasForeignKey(ew => ew.StepTrackId)
// // .OnDelete(DeleteBehavior.Restrict); ;
builder.HasOne(ew => ew.Employee)
.WithMany(e => e.EmployeeWorks)
.HasForeignKey(ew => ew.EmployeeId)
.OnDelete(DeleteBehavior.Restrict); ;
// builder.HasOne(ew => ew.Employee)
// .WithMany(e => e.EmployeeWorks)
// .HasForeignKey(ew => ew.EmployeeId)
// .OnDelete(DeleteBehavior.Restrict); ;
}
//}
} }
} }
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806062155_AddDomainUpdate")]
partial class AddDomainUpdate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:Collation", "Arabic_CI_AS")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.17")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("CustomerName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Customers");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Department", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("HIASTId")
.HasColumnType("int");
b.Property<int?>("TrackId")
.HasColumnType("int");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("TrackId");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("Employees");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Permission", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Permission");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Role", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("HashedPassword")
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("PSManagement.Domain.ProjectTypes.Entities.ProjectType", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("TypeName")
.HasColumnType("nvarchar(max)");
b.Property<int>("WorkerCount")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("ProjectType");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int?>("ExecuterId")
.HasColumnType("int");
b.Property<int?>("ProjectStatusId")
.HasColumnType("int");
b.Property<int?>("ProjectTypeId")
.HasColumnType("int");
b.Property<int?>("ProposerId")
.HasColumnType("int");
b.Property<int?>("TeamLeaderId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ExecuterId");
b.HasIndex("ProjectStatusId");
b.HasIndex("ProjectTypeId");
b.HasIndex("ProposerId");
b.HasIndex("TeamLeaderId");
b.ToTable("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AttachmenDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentUrl")
.HasColumnType("nvarchar(max)");
b.Property<int?>("ProjectId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Attachment");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("PartialTimeRatio")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<string>("Role")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("ProjectId");
b.ToTable("EmployeeParticipate");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Code")
.HasColumnType("nvarchar(max)");
b.Property<string>("Details")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("ProjectStatus");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("ItemDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("ItemName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Items");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("CurrentCompletionRatio")
.HasColumnType("int");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<string>("StepName")
.HasColumnType("nvarchar(max)");
b.Property<int>("Weight")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Steps");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AssignedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("EmloyeeId")
.HasColumnType("int");
b.Property<string>("PerformedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("TrackId")
.HasColumnType("int");
b.Property<int>("WorkingHours")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmloyeeId");
b.HasIndex("TrackId");
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ExecutionRatio")
.HasColumnType("int");
b.Property<int>("StepId")
.HasColumnType("int");
b.Property<int>("TrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StepId");
b.HasIndex("TrackId");
b.ToTable("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("TrackDate")
.HasColumnType("datetime2");
b.Property<string>("TrackNote")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Tracks");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.Property<int>("PermissionsId")
.HasColumnType("int");
b.Property<int>("RolesId")
.HasColumnType("int");
b.HasKey("PermissionsId", "RolesId");
b.HasIndex("RolesId");
b.ToTable("PermissionRole");
});
modelBuilder.Entity("RoleUser", b =>
{
b.Property<int>("RolesId")
.HasColumnType("int");
b.Property<int>("UsersId")
.HasColumnType("int");
b.HasKey("RolesId", "UsersId");
b.HasIndex("UsersId");
b.ToTable("RoleUser");
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.OwnsMany("PSManagement.Domain.Customers.Entities.ContactInfo", "ContactInfo", b1 =>
{
b1.Property<int>("CustomerId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("ContactType")
.HasColumnType("nvarchar(max)");
b1.Property<string>("ContactValue")
.HasColumnType("nvarchar(max)");
b1.HasKey("CustomerId", "Id");
b1.ToTable("ContactInfo");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.OwnsOne("PSManagement.Domain.Customers.ValueObjects.Address", "Address", b1 =>
{
b1.Property<int>("CustomerId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("City")
.HasColumnType("nvarchar(max)")
.HasColumnName("City");
b1.Property<string>("StreetName")
.HasColumnType("nvarchar(max)")
.HasColumnName("StreetName");
b1.Property<int>("StreetNumber")
.HasColumnType("int")
.HasColumnName("StreetNumber");
b1.Property<int>("ZipCode")
.HasColumnType("int")
.HasColumnName("ZipCode");
b1.HasKey("CustomerId");
b1.ToTable("Customers");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.Navigation("Address");
b.Navigation("ContactInfo");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("TrackedEmployees")
.HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee")
.HasForeignKey("PSManagement.Domain.Employees.Entities.Employee", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Employees.Entities.Availability", "Availability", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("CurrentWorkingHours")
.HasColumnType("int")
.HasColumnName("CurrentWorkingHours");
b1.Property<bool>("IsAvailable")
.HasColumnType("bit")
.HasColumnName("IsAvailable");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.OwnsOne("PSManagement.Domain.Employees.Entities.PersonalInfo", "PersonalInfo", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FirstName")
.HasColumnType("nvarchar(max)")
.HasColumnName("FirstName");
b1.Property<string>("LastName")
.HasColumnType("nvarchar(max)")
.HasColumnName("LastName");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.Navigation("Availability");
b.Navigation("PersonalInfo");
b.Navigation("User");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Department", "Executer")
.WithMany()
.HasForeignKey("ExecuterId");
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
.HasForeignKey("ProjectStatusId");
b.HasOne("PSManagement.Domain.ProjectTypes.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTypeId");
b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer")
.WithMany("Projects")
.HasForeignKey("ProposerId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId");
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("AggreementDate")
.HasColumnType("datetime2")
.HasColumnName("AggreementDate");
b1.Property<int>("AggreementNumber")
.HasColumnType("int")
.HasColumnName("AggreementNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("Code")
.HasColumnType("nvarchar(max)")
.HasColumnName("Code");
b1.Property<string>("Description")
.HasColumnType("nvarchar(max)")
.HasColumnName("Description");
b1.Property<string>("Name")
.HasColumnType("nvarchar(max)")
.HasColumnName("Name");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProposalInfo", "ProposalInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("ProposingBookDate")
.HasColumnType("datetime2")
.HasColumnName("ProposingBookDate");
b1.Property<int>("ProposingBookNumber")
.HasColumnType("int")
.HasColumnName("ProposingBookNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.Navigation("Executer");
b.Navigation("ProjectAggreement");
b.Navigation("ProjectInfo");
b.Navigation("ProjectStatus");
b.Navigation("ProjectType");
b.Navigation("ProposalInfo");
b.Navigation("Proposer");
b.Navigation("TeamLeader");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", null)
.WithMany("Attachments")
.HasForeignKey("ProjectId");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeParticipates")
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("EmployeeParticipates")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 =>
{
b1.Property<int>("ItemId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("Ammount")
.HasColumnType("int")
.HasColumnName("Ammount");
b1.Property<string>("Currency")
.HasColumnType("nvarchar(max)")
.HasColumnName("Currency");
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.WithOwner()
.HasForeignKey("ItemId");
});
b.Navigation("Price");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Steps")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeTracks")
.HasForeignKey("EmloyeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("EmployeeTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
.WithMany("StepTracks")
.HasForeignKey("StepId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("StepTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Step");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Tracks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Permission", null)
.WithMany()
.HasForeignKey("PermissionsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("RoleUser", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.User", null)
.WithMany()
.HasForeignKey("UsersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Navigation("EmployeeParticipates");
b.Navigation("EmployeeTracks");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Navigation("Employee");
});
modelBuilder.Entity("PSManagement.Domain.ProjectTypes.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Navigation("Attachments");
b.Navigation("EmployeeParticipates");
b.Navigation("Steps");
b.Navigation("Tracks");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Navigation("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
});
#pragma warning restore 612, 618
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Employees_Steps_StepId",
table: "Employees");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_Items_Steps_StepId",
table: "Items");
migrationBuilder.DropIndex(
name: "IX_Items_StepId",
table: "Items");
migrationBuilder.DropColumn(
name: "StepId",
table: "Items");
migrationBuilder.RenameColumn(
name: "StepId",
table: "Employees",
newName: "TrackId");
migrationBuilder.RenameIndex(
name: "IX_Employees_StepId",
table: "Employees",
newName: "IX_Employees_TrackId");
migrationBuilder.AddColumn<int>(
name: "ExecutionRatio",
table: "StepTracks",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "CurrentCompletionRatio",
table: "Steps",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "Weight",
table: "Steps",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.CreateTable(
name: "EmployeeParticipate",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
EmployeeId = table.Column<int>(type: "int", nullable: false),
ProjectId = table.Column<int>(type: "int", nullable: false),
PartialTimeRatio = table.Column<int>(type: "int", nullable: false),
Role = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_EmployeeParticipate", x => x.Id);
table.ForeignKey(
name: "FK_EmployeeParticipate_Employees_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EmployeeParticipate_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Projects",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "EmployeeTrack",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
EmloyeeId = table.Column<int>(type: "int", nullable: false),
TrackId = table.Column<int>(type: "int", nullable: false),
WorkingHours = table.Column<int>(type: "int", nullable: false),
PerformedWork = table.Column<string>(type: "nvarchar(max)", nullable: true),
AssignedWork = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_EmployeeTrack", x => x.Id);
table.ForeignKey(
name: "FK_EmployeeTrack_Employees_EmloyeeId",
column: x => x.EmloyeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EmployeeTrack_Tracks_TrackId",
column: x => x.TrackId,
principalTable: "Tracks",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_EmployeeParticipate_EmployeeId",
table: "EmployeeParticipate",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeParticipate_ProjectId",
table: "EmployeeParticipate",
column: "ProjectId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeTrack_EmloyeeId",
table: "EmployeeTrack",
column: "EmloyeeId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeTrack_TrackId",
table: "EmployeeTrack",
column: "TrackId");
migrationBuilder.AddForeignKey(
name: "FK_Employees_Tracks_TrackId",
table: "Employees",
column: "TrackId",
principalTable: "Tracks",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks",
column: "EmployeeId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks",
column: "StepTrackId",
principalTable: "StepTracks",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Employees_Tracks_TrackId",
table: "Employees");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks");
migrationBuilder.DropTable(
name: "EmployeeParticipate");
migrationBuilder.DropTable(
name: "EmployeeTrack");
migrationBuilder.DropColumn(
name: "ExecutionRatio",
table: "StepTracks");
migrationBuilder.DropColumn(
name: "CurrentCompletionRatio",
table: "Steps");
migrationBuilder.DropColumn(
name: "Weight",
table: "Steps");
migrationBuilder.RenameColumn(
name: "TrackId",
table: "Employees",
newName: "StepId");
migrationBuilder.RenameIndex(
name: "IX_Employees_TrackId",
table: "Employees",
newName: "IX_Employees_StepId");
migrationBuilder.AddColumn<int>(
name: "StepId",
table: "Items",
type: "int",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Items_StepId",
table: "Items",
column: "StepId");
migrationBuilder.AddForeignKey(
name: "FK_Employees_Steps_StepId",
table: "Employees",
column: "StepId",
principalTable: "Steps",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks",
column: "EmployeeId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks",
column: "StepTrackId",
principalTable: "StepTracks",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Items_Steps_StepId",
table: "Items",
column: "StepId",
principalTable: "Steps",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806125539_AddDomainUpdate2")]
partial class AddDomainUpdate2
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:Collation", "Arabic_CI_AS")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.17")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("CustomerName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Customers");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Department", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("HIASTId")
.HasColumnType("int");
b.Property<int?>("TrackId")
.HasColumnType("int");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("TrackId");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("Employees");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Permission", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Permission");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Role", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("HashedPassword")
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int?>("ExecuterId")
.HasColumnType("int");
b.Property<int>("ProjectManagerId")
.HasColumnType("int");
b.Property<int?>("ProjectStatusId")
.HasColumnType("int");
b.Property<int?>("ProposerId")
.HasColumnType("int");
b.Property<int>("TeamLeaderId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ExecuterId");
b.HasIndex("ProjectManagerId");
b.HasIndex("ProjectStatusId");
b.HasIndex("ProposerId");
b.HasIndex("TeamLeaderId");
b.ToTable("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AttachmenDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentUrl")
.HasColumnType("nvarchar(max)");
b.Property<int?>("ProjectId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Attachment");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("PartialTimeRatio")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<string>("Role")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("ProjectId");
b.ToTable("EmployeeParticipate");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Code")
.HasColumnType("nvarchar(max)");
b.Property<string>("Details")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("ProjectStatus");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("ItemDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("ItemName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Items");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("CurrentCompletionRatio")
.HasColumnType("int");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<string>("StepName")
.HasColumnType("nvarchar(max)");
b.Property<int>("Weight")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Steps");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AssignedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("EmloyeeId")
.HasColumnType("int");
b.Property<string>("PerformedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("TrackId")
.HasColumnType("int");
b.Property<int>("WorkingHours")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmloyeeId");
b.HasIndex("TrackId");
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ExecutionRatio")
.HasColumnType("int");
b.Property<int>("StepId")
.HasColumnType("int");
b.Property<int>("TrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StepId");
b.HasIndex("TrackId");
b.ToTable("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("TrackDate")
.HasColumnType("datetime2");
b.Property<string>("TrackNote")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Tracks");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.Property<int>("PermissionsId")
.HasColumnType("int");
b.Property<int>("RolesId")
.HasColumnType("int");
b.HasKey("PermissionsId", "RolesId");
b.HasIndex("RolesId");
b.ToTable("PermissionRole");
});
modelBuilder.Entity("RoleUser", b =>
{
b.Property<int>("RolesId")
.HasColumnType("int");
b.Property<int>("UsersId")
.HasColumnType("int");
b.HasKey("RolesId", "UsersId");
b.HasIndex("UsersId");
b.ToTable("RoleUser");
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.OwnsMany("PSManagement.Domain.Customers.Entities.ContactInfo", "ContactInfo", b1 =>
{
b1.Property<int>("CustomerId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("ContactType")
.HasColumnType("nvarchar(max)");
b1.Property<string>("ContactValue")
.HasColumnType("nvarchar(max)");
b1.HasKey("CustomerId", "Id");
b1.ToTable("ContactInfo");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.OwnsOne("PSManagement.Domain.Customers.ValueObjects.Address", "Address", b1 =>
{
b1.Property<int>("CustomerId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("City")
.HasColumnType("nvarchar(max)")
.HasColumnName("City");
b1.Property<string>("StreetName")
.HasColumnType("nvarchar(max)")
.HasColumnName("StreetName");
b1.Property<int>("StreetNumber")
.HasColumnType("int")
.HasColumnName("StreetNumber");
b1.Property<int>("ZipCode")
.HasColumnType("int")
.HasColumnName("ZipCode");
b1.HasKey("CustomerId");
b1.ToTable("Customers");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.Navigation("Address");
b.Navigation("ContactInfo");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("TrackedEmployees")
.HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee")
.HasForeignKey("PSManagement.Domain.Employees.Entities.Employee", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Employees.Entities.Availability", "Availability", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("CurrentWorkingHours")
.HasColumnType("int")
.HasColumnName("CurrentWorkingHours");
b1.Property<bool>("IsAvailable")
.HasColumnType("bit")
.HasColumnName("IsAvailable");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.OwnsOne("PSManagement.Domain.Employees.Entities.PersonalInfo", "PersonalInfo", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FirstName")
.HasColumnType("nvarchar(max)")
.HasColumnName("FirstName");
b1.Property<string>("LastName")
.HasColumnType("nvarchar(max)")
.HasColumnName("LastName");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.Navigation("Availability");
b.Navigation("PersonalInfo");
b.Navigation("User");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Department", "Executer")
.WithMany()
.HasForeignKey("ExecuterId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
.HasForeignKey("ProjectStatusId");
b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer")
.WithMany("Projects")
.HasForeignKey("ProposerId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("AggreementDate")
.HasColumnType("datetime2")
.HasColumnName("AggreementDate");
b1.Property<int>("AggreementNumber")
.HasColumnType("int")
.HasColumnName("AggreementNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.FinincialFund", "FinincialFund", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FinicialStatus")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialStatus");
b1.Property<string>("Source")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialSource");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("Code")
.HasColumnType("nvarchar(max)")
.HasColumnName("Code");
b1.Property<string>("Description")
.HasColumnType("nvarchar(max)")
.HasColumnName("Description");
b1.Property<string>("Name")
.HasColumnType("nvarchar(max)")
.HasColumnName("Name");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProposalInfo", "ProposalInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("ProposingBookDate")
.HasColumnType("datetime2")
.HasColumnName("ProposingBookDate");
b1.Property<int>("ProposingBookNumber")
.HasColumnType("int")
.HasColumnName("ProposingBookNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.Navigation("Executer");
b.Navigation("FinincialFund");
b.Navigation("ProjectAggreement");
b.Navigation("ProjectInfo");
b.Navigation("ProjectManager");
b.Navigation("ProjectStatus");
b.Navigation("ProposalInfo");
b.Navigation("Proposer");
b.Navigation("TeamLeader");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", null)
.WithMany("Attachments")
.HasForeignKey("ProjectId");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeParticipates")
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("EmployeeParticipates")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 =>
{
b1.Property<int>("ItemId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("Ammount")
.HasColumnType("int")
.HasColumnName("Ammount");
b1.Property<string>("Currency")
.HasColumnType("nvarchar(max)")
.HasColumnName("Currency");
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.WithOwner()
.HasForeignKey("ItemId");
});
b.Navigation("Price");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Steps")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeTracks")
.HasForeignKey("EmloyeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("EmployeeTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
.WithMany("StepTracks")
.HasForeignKey("StepId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("StepTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Step");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Tracks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Permission", null)
.WithMany()
.HasForeignKey("PermissionsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("RoleUser", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.User", null)
.WithMany()
.HasForeignKey("UsersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Navigation("EmployeeParticipates");
b.Navigation("EmployeeTracks");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Navigation("Employee");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Navigation("Attachments");
b.Navigation("EmployeeParticipates");
b.Navigation("Steps");
b.Navigation("Tracks");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Navigation("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
});
#pragma warning restore 612, 618
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_ProjectType_ProjectTypeId",
table: "Projects");
migrationBuilder.DropTable(
name: "ProjectType");
migrationBuilder.DropIndex(
name: "IX_Projects_ProjectTypeId",
table: "Projects");
migrationBuilder.DropColumn(
name: "ProjectTypeId",
table: "Projects");
migrationBuilder.AlterColumn<int>(
name: "TeamLeaderId",
table: "Projects",
type: "int",
nullable: false,
defaultValue: 0,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
migrationBuilder.AddColumn<string>(
name: "FinicialSource",
table: "Projects",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "FinicialStatus",
table: "Projects",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "ProjectManagerId",
table: "Projects",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.CreateIndex(
name: "IX_Projects_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.DropIndex(
name: "IX_Projects_ProjectManagerId",
table: "Projects");
migrationBuilder.DropColumn(
name: "FinicialSource",
table: "Projects");
migrationBuilder.DropColumn(
name: "FinicialStatus",
table: "Projects");
migrationBuilder.DropColumn(
name: "ProjectManagerId",
table: "Projects");
migrationBuilder.AlterColumn<int>(
name: "TeamLeaderId",
table: "Projects",
type: "int",
nullable: true,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.AddColumn<int>(
name: "ProjectTypeId",
table: "Projects",
type: "int",
nullable: true);
migrationBuilder.CreateTable(
name: "ProjectType",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
TypeName = table.Column<string>(type: "nvarchar(max)", nullable: true),
WorkerCount = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ProjectType", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_Projects_ProjectTypeId",
table: "Projects",
column: "ProjectTypeId");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Projects_ProjectType_ProjectTypeId",
table: "Projects",
column: "ProjectTypeId",
principalTable: "ProjectType",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806132941_AddDomainUpdate3")]
partial class AddDomainUpdate3
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:Collation", "Arabic_CI_AS")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.17")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("CustomerName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Customers");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Department", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("HIASTId")
.HasColumnType("int");
b.Property<int?>("TrackId")
.HasColumnType("int");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("TrackId");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("Employees");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Permission", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Permission");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Role", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("HashedPassword")
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int?>("ExecuterId")
.HasColumnType("int");
b.Property<int>("ProjectManagerId")
.HasColumnType("int");
b.Property<int?>("ProjectStatusId")
.HasColumnType("int");
b.Property<int?>("ProposerId")
.HasColumnType("int");
b.Property<int>("TeamLeaderId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ExecuterId");
b.HasIndex("ProjectManagerId");
b.HasIndex("ProjectStatusId");
b.HasIndex("ProposerId");
b.HasIndex("TeamLeaderId");
b.ToTable("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AttachmenDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentUrl")
.HasColumnType("nvarchar(max)");
b.Property<int?>("ProjectId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Attachment");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("PartialTimeRatio")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<string>("Role")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("ProjectId");
b.ToTable("EmployeeParticipate");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Code")
.HasColumnType("nvarchar(max)");
b.Property<string>("Details")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("ProjectStatus");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("ItemDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("ItemName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Items");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("CurrentCompletionRatio")
.HasColumnType("int");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<string>("StepName")
.HasColumnType("nvarchar(max)");
b.Property<int>("Weight")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Steps");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AssignedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("EmloyeeId")
.HasColumnType("int");
b.Property<string>("PerformedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("TrackId")
.HasColumnType("int");
b.Property<int>("WorkingHours")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmloyeeId");
b.HasIndex("TrackId");
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ExecutionRatio")
.HasColumnType("int");
b.Property<int>("StepId")
.HasColumnType("int");
b.Property<int>("TrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StepId");
b.HasIndex("TrackId");
b.ToTable("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("TrackDate")
.HasColumnType("datetime2");
b.Property<string>("TrackNote")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Tracks");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.Property<int>("PermissionsId")
.HasColumnType("int");
b.Property<int>("RolesId")
.HasColumnType("int");
b.HasKey("PermissionsId", "RolesId");
b.HasIndex("RolesId");
b.ToTable("PermissionRole");
});
modelBuilder.Entity("RoleUser", b =>
{
b.Property<int>("RolesId")
.HasColumnType("int");
b.Property<int>("UsersId")
.HasColumnType("int");
b.HasKey("RolesId", "UsersId");
b.HasIndex("UsersId");
b.ToTable("RoleUser");
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.OwnsMany("PSManagement.Domain.Customers.Entities.ContactInfo", "ContactInfo", b1 =>
{
b1.Property<int>("CustomerId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("ContactType")
.HasColumnType("nvarchar(max)");
b1.Property<string>("ContactValue")
.HasColumnType("nvarchar(max)");
b1.HasKey("CustomerId", "Id");
b1.ToTable("ContactInfo");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.OwnsOne("PSManagement.Domain.Customers.ValueObjects.Address", "Address", b1 =>
{
b1.Property<int>("CustomerId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("City")
.HasColumnType("nvarchar(max)")
.HasColumnName("City");
b1.Property<string>("StreetName")
.HasColumnType("nvarchar(max)")
.HasColumnName("StreetName");
b1.Property<int>("StreetNumber")
.HasColumnType("int")
.HasColumnName("StreetNumber");
b1.Property<int>("ZipCode")
.HasColumnType("int")
.HasColumnName("ZipCode");
b1.HasKey("CustomerId");
b1.ToTable("Customers");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.Navigation("Address");
b.Navigation("ContactInfo");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("TrackedEmployees")
.HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee")
.HasForeignKey("PSManagement.Domain.Employees.Entities.Employee", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Employees.Entities.Availability", "Availability", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("CurrentWorkingHours")
.HasColumnType("int")
.HasColumnName("CurrentWorkingHours");
b1.Property<bool>("IsAvailable")
.HasColumnType("bit")
.HasColumnName("IsAvailable");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.OwnsOne("PSManagement.Domain.Employees.Entities.PersonalInfo", "PersonalInfo", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FirstName")
.HasColumnType("nvarchar(max)")
.HasColumnName("FirstName");
b1.Property<string>("LastName")
.HasColumnType("nvarchar(max)")
.HasColumnName("LastName");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.Navigation("Availability");
b.Navigation("PersonalInfo");
b.Navigation("User");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Department", "Executer")
.WithMany()
.HasForeignKey("ExecuterId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
.HasForeignKey("ProjectStatusId");
b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer")
.WithMany("Projects")
.HasForeignKey("ProposerId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("AggreementDate")
.HasColumnType("datetime2")
.HasColumnName("AggreementDate");
b1.Property<int>("AggreementNumber")
.HasColumnType("int")
.HasColumnName("AggreementNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.FinincialFund", "FinincialFund", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FinicialStatus")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialStatus");
b1.Property<string>("Source")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialSource");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("Code")
.HasColumnType("nvarchar(max)")
.HasColumnName("Code");
b1.Property<string>("Description")
.HasColumnType("nvarchar(max)")
.HasColumnName("Description");
b1.Property<string>("Name")
.HasColumnType("nvarchar(max)")
.HasColumnName("Name");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProposalInfo", "ProposalInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("ProposingBookDate")
.HasColumnType("datetime2")
.HasColumnName("ProposingBookDate");
b1.Property<int>("ProposingBookNumber")
.HasColumnType("int")
.HasColumnName("ProposingBookNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.Navigation("Executer");
b.Navigation("FinincialFund");
b.Navigation("ProjectAggreement");
b.Navigation("ProjectInfo");
b.Navigation("ProjectManager");
b.Navigation("ProjectStatus");
b.Navigation("ProposalInfo");
b.Navigation("Proposer");
b.Navigation("TeamLeader");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", null)
.WithMany("Attachments")
.HasForeignKey("ProjectId");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeParticipates")
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("EmployeeParticipates")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 =>
{
b1.Property<int>("ItemId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("Ammount")
.HasColumnType("int")
.HasColumnName("Ammount");
b1.Property<string>("Currency")
.HasColumnType("nvarchar(max)")
.HasColumnName("Currency");
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.WithOwner()
.HasForeignKey("ItemId");
});
b.Navigation("Price");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Steps")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeTracks")
.HasForeignKey("EmloyeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("EmployeeTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
.WithMany("StepTracks")
.HasForeignKey("StepId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("StepTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Step");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Tracks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Permission", null)
.WithMany()
.HasForeignKey("PermissionsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("RoleUser", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.User", null)
.WithMany()
.HasForeignKey("UsersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Navigation("EmployeeParticipates");
b.Navigation("EmployeeTracks");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Navigation("Employee");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Navigation("Attachments");
b.Navigation("EmployeeParticipates");
b.Navigation("Steps");
b.Navigation("Tracks");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Navigation("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
});
#pragma warning restore 612, 618
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate3 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
}
}
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806133359_AddDomainUpdate4")]
partial class AddDomainUpdate4
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:Collation", "Arabic_CI_AS")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.17")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("CustomerName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Customers");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Department", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("HIASTId")
.HasColumnType("int");
b.Property<int?>("TrackId")
.HasColumnType("int");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("TrackId");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("Employees");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Permission", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Permission");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.Role", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("HashedPassword")
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int?>("ExecuterId")
.HasColumnType("int");
b.Property<int>("ProjectManagerId")
.HasColumnType("int");
b.Property<int?>("ProjectStatusId")
.HasColumnType("int");
b.Property<int?>("ProposerId")
.HasColumnType("int");
b.Property<int>("TeamLeaderId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ExecuterId");
b.HasIndex("ProjectManagerId");
b.HasIndex("ProjectStatusId");
b.HasIndex("ProposerId");
b.HasIndex("TeamLeaderId");
b.ToTable("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AttachmenDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("AttachmentUrl")
.HasColumnType("nvarchar(max)");
b.Property<int?>("ProjectId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Attachment");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("PartialTimeRatio")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<string>("Role")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("ProjectId");
b.ToTable("EmployeeParticipate");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Code")
.HasColumnType("nvarchar(max)");
b.Property<string>("Details")
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("ProjectStatus");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("ItemDescription")
.HasColumnType("nvarchar(max)");
b.Property<string>("ItemName")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Items");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("CurrentCompletionRatio")
.HasColumnType("int");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<int>("Duration")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<string>("StepName")
.HasColumnType("nvarchar(max)");
b.Property<int>("Weight")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Steps");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AssignedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("EmloyeeId")
.HasColumnType("int");
b.Property<string>("PerformedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("TrackId")
.HasColumnType("int");
b.Property<int>("WorkingHours")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmloyeeId");
b.HasIndex("TrackId");
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ExecutionRatio")
.HasColumnType("int");
b.Property<int>("StepId")
.HasColumnType("int");
b.Property<int>("TrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("StepId");
b.HasIndex("TrackId");
b.ToTable("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<DateTime>("TrackDate")
.HasColumnType("datetime2");
b.Property<string>("TrackNote")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("ProjectId");
b.ToTable("Tracks");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.Property<int>("PermissionsId")
.HasColumnType("int");
b.Property<int>("RolesId")
.HasColumnType("int");
b.HasKey("PermissionsId", "RolesId");
b.HasIndex("RolesId");
b.ToTable("PermissionRole");
});
modelBuilder.Entity("RoleUser", b =>
{
b.Property<int>("RolesId")
.HasColumnType("int");
b.Property<int>("UsersId")
.HasColumnType("int");
b.HasKey("RolesId", "UsersId");
b.HasIndex("UsersId");
b.ToTable("RoleUser");
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.OwnsMany("PSManagement.Domain.Customers.Entities.ContactInfo", "ContactInfo", b1 =>
{
b1.Property<int>("CustomerId")
.HasColumnType("int");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("ContactType")
.HasColumnType("nvarchar(max)");
b1.Property<string>("ContactValue")
.HasColumnType("nvarchar(max)");
b1.HasKey("CustomerId", "Id");
b1.ToTable("ContactInfo");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.OwnsOne("PSManagement.Domain.Customers.ValueObjects.Address", "Address", b1 =>
{
b1.Property<int>("CustomerId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("City")
.HasColumnType("nvarchar(max)")
.HasColumnName("City");
b1.Property<string>("StreetName")
.HasColumnType("nvarchar(max)")
.HasColumnName("StreetName");
b1.Property<int>("StreetNumber")
.HasColumnType("int")
.HasColumnName("StreetNumber");
b1.Property<int>("ZipCode")
.HasColumnType("int")
.HasColumnName("ZipCode");
b1.HasKey("CustomerId");
b1.ToTable("Customers");
b1.WithOwner()
.HasForeignKey("CustomerId");
});
b.Navigation("Address");
b.Navigation("ContactInfo");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("TrackedEmployees")
.HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee")
.HasForeignKey("PSManagement.Domain.Employees.Entities.Employee", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("PSManagement.Domain.Employees.Entities.Availability", "Availability", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("CurrentWorkingHours")
.HasColumnType("int")
.HasColumnName("CurrentWorkingHours");
b1.Property<bool>("IsAvailable")
.HasColumnType("bit")
.HasColumnName("IsAvailable");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.OwnsOne("PSManagement.Domain.Employees.Entities.PersonalInfo", "PersonalInfo", b1 =>
{
b1.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FirstName")
.HasColumnType("nvarchar(max)")
.HasColumnName("FirstName");
b1.Property<string>("LastName")
.HasColumnType("nvarchar(max)")
.HasColumnName("LastName");
b1.HasKey("EmployeeId");
b1.ToTable("Employees");
b1.WithOwner()
.HasForeignKey("EmployeeId");
});
b.Navigation("Availability");
b.Navigation("PersonalInfo");
b.Navigation("User");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Department", "Executer")
.WithMany()
.HasForeignKey("ExecuterId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
.HasForeignKey("ProjectStatusId");
b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer")
.WithMany("Projects")
.HasForeignKey("ProposerId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Restrict);
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("AggreementDate")
.HasColumnType("datetime2")
.HasColumnName("AggreementDate");
b1.Property<int>("AggreementNumber")
.HasColumnType("int")
.HasColumnName("AggreementNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.FinincialFund", "FinincialFund", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FinicialStatus")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialStatus");
b1.Property<string>("Source")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialSource");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("Code")
.HasColumnType("nvarchar(max)")
.HasColumnName("Code");
b1.Property<string>("Description")
.HasColumnType("nvarchar(max)")
.HasColumnName("Description");
b1.Property<string>("Name")
.HasColumnType("nvarchar(max)")
.HasColumnName("Name");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProposalInfo", "ProposalInfo", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<DateTime>("ProposingBookDate")
.HasColumnType("datetime2")
.HasColumnName("ProposingBookDate");
b1.Property<int>("ProposingBookNumber")
.HasColumnType("int")
.HasColumnName("ProposingBookNumber");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.Navigation("Executer");
b.Navigation("FinincialFund");
b.Navigation("ProjectAggreement");
b.Navigation("ProjectInfo");
b.Navigation("ProjectManager");
b.Navigation("ProjectStatus");
b.Navigation("ProposalInfo");
b.Navigation("Proposer");
b.Navigation("TeamLeader");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.Attachment", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", null)
.WithMany("Attachments")
.HasForeignKey("ProjectId");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeParticipates")
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("EmployeeParticipates")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 =>
{
b1.Property<int>("ItemId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<int>("Ammount")
.HasColumnType("int")
.HasColumnName("Ammount");
b1.Property<string>("Currency")
.HasColumnType("nvarchar(max)")
.HasColumnName("Currency");
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.WithOwner()
.HasForeignKey("ItemId");
});
b.Navigation("Price");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Steps")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeTracks")
.HasForeignKey("EmloyeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("EmployeeTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
.WithMany("StepTracks")
.HasForeignKey("StepId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("StepTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Step");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("Tracks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Project");
});
modelBuilder.Entity("PermissionRole", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Permission", null)
.WithMany()
.HasForeignKey("PermissionsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("RoleUser", b =>
{
b.HasOne("PSManagement.Domain.Identity.Entities.Role", null)
.WithMany()
.HasForeignKey("RolesId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Identity.Entities.User", null)
.WithMany()
.HasForeignKey("UsersId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
modelBuilder.Entity("PSManagement.Domain.Customers.Aggregate.Customer", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.Navigation("EmployeeParticipates");
b.Navigation("EmployeeTracks");
});
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
{
b.Navigation("Employee");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{
b.Navigation("Attachments");
b.Navigation("EmployeeParticipates");
b.Navigation("Steps");
b.Navigation("Tracks");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{
b.Navigation("StepTracks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
});
#pragma warning restore 612, 618
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate4 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
...@@ -63,7 +63,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -63,7 +63,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Property<int>("HIASTId") b.Property<int>("HIASTId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int?>("StepId") b.Property<int?>("TrackId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int>("UserId") b.Property<int>("UserId")
...@@ -71,7 +71,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -71,7 +71,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("StepId"); b.HasIndex("TrackId");
b.HasIndex("UserId") b.HasIndex("UserId")
.IsUnique(); .IsUnique();
...@@ -130,27 +130,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -130,27 +130,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.ToTable("Users"); b.ToTable("Users");
}); });
modelBuilder.Entity("PSManagement.Domain.ProjectTypes.Entities.ProjectType", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("TypeName")
.HasColumnType("nvarchar(max)");
b.Property<int>("WorkerCount")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("ProjectType");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b => modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{ {
b.Property<int>("Id") b.Property<int>("Id")
...@@ -161,25 +140,25 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -161,25 +140,25 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Property<int?>("ExecuterId") b.Property<int?>("ExecuterId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int?>("ProjectStatusId") b.Property<int>("ProjectManagerId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int?>("ProjectTypeId") b.Property<int?>("ProjectStatusId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int?>("ProposerId") b.Property<int?>("ProposerId")
.HasColumnType("int"); .HasColumnType("int");
b.Property<int?>("TeamLeaderId") b.Property<int>("TeamLeaderId")
.HasColumnType("int"); .HasColumnType("int");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ExecuterId"); b.HasIndex("ExecuterId");
b.HasIndex("ProjectStatusId"); b.HasIndex("ProjectManagerId");
b.HasIndex("ProjectTypeId"); b.HasIndex("ProjectStatusId");
b.HasIndex("ProposerId"); b.HasIndex("ProposerId");
...@@ -214,6 +193,34 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -214,6 +193,34 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.ToTable("Attachment"); b.ToTable("Attachment");
}); });
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("PartialTimeRatio")
.HasColumnType("int");
b.Property<int>("ProjectId")
.HasColumnType("int");
b.Property<string>("Role")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("ProjectId");
b.ToTable("EmployeeParticipate");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b => modelBuilder.Entity("PSManagement.Domain.Projects.Entities.ProjectStatus", b =>
{ {
b.Property<int>("Id") b.Property<int>("Id")
...@@ -248,13 +255,8 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -248,13 +255,8 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Property<string>("ItemName") b.Property<string>("ItemName")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<int?>("StepId")
.HasColumnType("int");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("StepId");
b.ToTable("Items"); b.ToTable("Items");
}); });
...@@ -265,6 +267,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -265,6 +267,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
.HasColumnType("int") .HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("CurrentCompletionRatio")
.HasColumnType("int");
b.Property<string>("Description") b.Property<string>("Description")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
...@@ -280,6 +285,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -280,6 +285,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Property<string>("StepName") b.Property<string>("StepName")
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<int>("Weight")
.HasColumnType("int");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProjectId"); b.HasIndex("ProjectId");
...@@ -287,6 +295,37 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -287,6 +295,37 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.ToTable("Steps"); b.ToTable("Steps");
}); });
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("AssignedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("EmloyeeId")
.HasColumnType("int");
b.Property<string>("PerformedWork")
.HasColumnType("nvarchar(max)");
b.Property<int>("TrackId")
.HasColumnType("int");
b.Property<int>("WorkingHours")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmloyeeId");
b.HasIndex("TrackId");
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b => modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{ {
b.Property<int>("Id") b.Property<int>("Id")
...@@ -328,6 +367,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -328,6 +367,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
.HasColumnType("int") .HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ExecutionRatio")
.HasColumnType("int");
b.Property<int>("StepId") b.Property<int>("StepId")
.HasColumnType("int"); .HasColumnType("int");
...@@ -460,9 +502,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -460,9 +502,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b => modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{ {
b.HasOne("PSManagement.Domain.Steps.Entities.Step", null) b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("Participants") .WithMany("TrackedEmployees")
.HasForeignKey("StepId"); .HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User") b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee") .WithOne("Employee")
...@@ -529,21 +571,23 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -529,21 +571,23 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
.WithMany() .WithMany()
.HasForeignKey("ExecuterId"); .HasForeignKey("ExecuterId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus") b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany() .WithMany()
.HasForeignKey("ProjectStatusId"); .HasForeignKey("ProjectStatusId");
b.HasOne("PSManagement.Domain.ProjectTypes.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTypeId");
b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer") b.HasOne("PSManagement.Domain.Customers.Aggregate.Customer", "Proposer")
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("ProposerId"); .HasForeignKey("ProposerId");
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader") b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany() .WithMany()
.HasForeignKey("TeamLeaderId"); .HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Restrict);
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 => b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{ {
...@@ -568,6 +612,29 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -568,6 +612,29 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
.HasForeignKey("ProjectId"); .HasForeignKey("ProjectId");
}); });
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.FinincialFund", "FinincialFund", b1 =>
{
b1.Property<int>("ProjectId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b1.Property<string>("FinicialStatus")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialStatus");
b1.Property<string>("Source")
.HasColumnType("nvarchar(max)")
.HasColumnName("FinicialSource");
b1.HasKey("ProjectId");
b1.ToTable("Projects");
b1.WithOwner()
.HasForeignKey("ProjectId");
});
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 => b.OwnsOne("PSManagement.Domain.Projects.Aggregate.ProjectInfo", "ProjectInfo", b1 =>
{ {
b1.Property<int>("ProjectId") b1.Property<int>("ProjectId")
...@@ -620,13 +687,15 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -620,13 +687,15 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("Executer"); b.Navigation("Executer");
b.Navigation("FinincialFund");
b.Navigation("ProjectAggreement"); b.Navigation("ProjectAggreement");
b.Navigation("ProjectInfo"); b.Navigation("ProjectInfo");
b.Navigation("ProjectStatus"); b.Navigation("ProjectManager");
b.Navigation("ProjectType"); b.Navigation("ProjectStatus");
b.Navigation("ProposalInfo"); b.Navigation("ProposalInfo");
...@@ -642,12 +711,27 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -642,12 +711,27 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
.HasForeignKey("ProjectId"); .HasForeignKey("ProjectId");
}); });
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b => modelBuilder.Entity("PSManagement.Domain.Projects.Entities.EmployeeParticipate", b =>
{ {
b.HasOne("PSManagement.Domain.Steps.Entities.Step", null) b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("Purchases") .WithMany("EmployeeParticipates")
.HasForeignKey("StepId"); .HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Projects.Aggregate.Project", "Project")
.WithMany("EmployeeParticipates")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Project");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Item", b =>
{
b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 => b.OwnsOne("PSManagement.SharedKernel.ValueObjects.Money", "Price", b1 =>
{ {
b1.Property<int>("ItemId") b1.Property<int>("ItemId")
...@@ -685,18 +769,37 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -685,18 +769,37 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("Project"); b.Navigation("Project");
}); });
modelBuilder.Entity("PSManagement.Domain.Tracking.EmployeeTrack", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeTracks")
.HasForeignKey("EmloyeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Track", "Track")
.WithMany("EmployeeTracks")
.HasForeignKey("TrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b => modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{ {
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee") b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany("EmployeeWorks") .WithMany()
.HasForeignKey("EmployeeId") .HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack") b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany("EmployeeWorks") .WithMany()
.HasForeignKey("StepTrackId") .HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.Navigation("Employee"); b.Navigation("Employee");
...@@ -771,7 +874,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -771,7 +874,9 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b => modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{ {
b.Navigation("EmployeeWorks"); b.Navigation("EmployeeParticipates");
b.Navigation("EmployeeTracks");
}); });
modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b => modelBuilder.Entity("PSManagement.Domain.Identity.Entities.User", b =>
...@@ -779,15 +884,12 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -779,15 +884,12 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("Employee"); b.Navigation("Employee");
}); });
modelBuilder.Entity("PSManagement.Domain.ProjectTypes.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b => modelBuilder.Entity("PSManagement.Domain.Projects.Aggregate.Project", b =>
{ {
b.Navigation("Attachments"); b.Navigation("Attachments");
b.Navigation("EmployeeParticipates");
b.Navigation("Steps"); b.Navigation("Steps");
b.Navigation("Tracks"); b.Navigation("Tracks");
...@@ -795,21 +897,16 @@ namespace PSManagement.Infrastructure.Persistence.Migrations ...@@ -795,21 +897,16 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b => modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
{ {
b.Navigation("Participants");
b.Navigation("Purchases");
b.Navigation("StepTracks"); b.Navigation("StepTracks");
}); });
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Navigation("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b => modelBuilder.Entity("PSManagement.Domain.Tracking.Track", b =>
{ {
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks"); b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
}); });
#pragma warning restore 612, 618 #pragma warning restore 612, 618
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment