Skip to content

Commit de498bc

Browse files
authored
Adding PersonnelTeam database table (#717)
1 parent 2ba9ea1 commit de498bc

File tree

6 files changed

+955
-0
lines changed

6 files changed

+955
-0
lines changed

backend/Core/Consultants/Consultant.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Core.Engagements;
55
using Core.Forecasts;
66
using Core.Organizations;
7+
using Core.PersonnelTeams;
78
using Core.PlannedAbsences;
89
using Core.Staffings;
910
using Core.Vacations;
@@ -39,6 +40,8 @@ public class Consultant
3940

4041
public int EstimatedHourPrice { get; set; }
4142

43+
public PersonnelTeam? PersonnelTeam { get; set; }
44+
public int? PersonnelTeamId { get; set; }
4245

4346
public int YearsOfExperience
4447
{
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.ComponentModel.DataAnnotations.Schema;
2+
using Core.Consultants;
3+
4+
namespace Core.PersonnelTeams;
5+
6+
public class PersonnelTeam
7+
{
8+
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
9+
public required int Id { get; init; }
10+
11+
public required string OrganizationUrlKey { get; init; }
12+
13+
public required int LeaderId { get; init; }
14+
public required Consultant Leader { get; set; }
15+
16+
public List<Consultant> Members { get; set; } = [];
17+
}

backend/Infrastructure/DatabaseContext/ApplicationContext.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Core.Forecasts;
99
using Core.Months;
1010
using Core.Organizations;
11+
using Core.PersonnelTeams;
1112
using Core.PlannedAbsences;
1213
using Core.Staffings;
1314
using Core.Vacations;
@@ -34,6 +35,7 @@ public class ApplicationContext(IOptions<InfrastructureConfig> config) : DbConte
3435
public DbSet<Staffing> Staffing { get; init; } = null!;
3536
public DbSet<Agreement> Agreements { get; init; } = null!;
3637
public DbSet<Forecast> Forecasts { get; init; } = null!;
38+
public DbSet<PersonnelTeam> PersonnelTeams { get; init; } = null!;
3739

3840
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
3941
{
@@ -182,6 +184,15 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
182184
.IsUnique();
183185
*/
184186

187+
modelBuilder.Entity<PersonnelTeam>()
188+
.HasOne(team => team.Leader)
189+
.WithOne()
190+
.HasForeignKey<PersonnelTeam>(team => team.LeaderId);
191+
192+
modelBuilder.Entity<PersonnelTeam>()
193+
.HasMany(team => team.Members)
194+
.WithOne(member => member.PersonnelTeam)
195+
.HasForeignKey(member => member.PersonnelTeamId);
185196

186197
modelBuilder.Entity<Competence>().HasData(new List<Competence>
187198
{

0 commit comments

Comments
 (0)