Hr ListFormSeeder

This commit is contained in:
Sedat ÖZTÜRK 2025-10-21 15:14:30 +03:00
parent 9c67c5c102
commit c698de53fc
16 changed files with 3746 additions and 881 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -131,12 +131,12 @@ public static class LookUpQueryValues
$"\"Name\" AS \"Name\" " + $"\"Name\" AS \"Name\" " +
$"FROM \"KURS\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + $"FROM \"KURS\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " +
$"WHERE " + $"WHERE " +
$"\"TenantId\" = @TENANTID " + $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doğru — Replace hedefi bu.
$"AND \"IsDeleted\" = 'false' " + $"AND \"IsDeleted\" = 'false' " +
$"AND \"Id\" IN ( " + $"AND \"Id\" IN ( " +
$"SELECT \"BranchId\" " + $"SELECT \"BranchId\" " +
$"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " +
$"WHERE \"UserId\" = @USERID " + $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doğru.
$") " + $") " +
$"ORDER BY \"Name\";"; $"ORDER BY \"Name\";";
@ -232,4 +232,12 @@ public static class LookUpQueryValues
$"\"Name\" AS \"Name\" " + $"\"Name\" AS \"Name\" " +
$"FROM \"{FullNameTable(TableNameEnum.Currency)}\" " + $"FROM \"{FullNameTable(TableNameEnum.Currency)}\" " +
$"WHERE \"IsDeleted\" = 'false' "; $"WHERE \"IsDeleted\" = 'false' ";
public static string DepartmentValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{FullNameTable(TableNameEnum.Department)}\" " +
$"WHERE \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
} }

View file

@ -104,5 +104,11 @@ public enum TableNameEnum
QuestionTag, QuestionTag,
QuestionPool, QuestionPool,
Question, Question,
QuestionOption QuestionOption,
EmploymentType,
JobPosition,
Department,
Badge,
CostCenter,
Employee
} }

View file

@ -497,6 +497,13 @@ public static class PlatformConsts
public const string QuestionTag = "list-questiontag"; public const string QuestionTag = "list-questiontag";
public const string QuestionPool = "list-questionpool"; public const string QuestionPool = "list-questionpool";
public const string Question = "list-question"; public const string Question = "list-question";
//Hr
public const string EmploymentType = "list-employmenttype";
public const string JobPosition = "list-jobposition";
public const string Department = "list-department";
public const string Employee = "list-employee";
public const string Badge = "list-badge";
} }
} }

View file

@ -121,6 +121,14 @@ public static class TableNameResolver
{ nameof(TableNameEnum.Question), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) }, { nameof(TableNameEnum.Question), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
{ nameof(TableNameEnum.QuestionOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) }, { nameof(TableNameEnum.QuestionOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) },
// 🔹 HR
{ nameof(TableNameEnum.Department), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.EmploymentType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.JobPosition), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Badge), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.CostCenter), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
{ nameof(TableNameEnum.Employee), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) },
// 🔹 ACCOUNTING // 🔹 ACCOUNTING
{ nameof(TableNameEnum.Bank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) }, { nameof(TableNameEnum.Bank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },
{ nameof(TableNameEnum.BankAccount), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) }, { nameof(TableNameEnum.BankAccount), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) },

View file

@ -448,6 +448,16 @@ public static class SeedConsts
public const string Default = Prefix.App + ".Classroom"; public const string Default = Prefix.App + ".Classroom";
} }
public static class Hr
{
public const string Default = Prefix.App + ".Hr";
public const string Department = Default + ".Department";
public const string Employee = Default + ".Employee";
public const string JobPosition = Default + ".JobPosition";
public const string EmploymentType = Default + ".EmploymentType";
public const string Badge = Default + ".Badge";
}
public static class Accounting public static class Accounting
{ {
public const string Default = Prefix.App + ".Accounting"; public const string Default = Prefix.App + ".Accounting";

View file

@ -0,0 +1,22 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Kurs.Platform.Entities;
public class Badge : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Icon { get; set; }
public string Color { get; set; }
public string BackgroundColor { get; set; }
public string Category { get; set; }
public string Criteria { get; set; }
public int Points { get; set; }
public string Rarity { get; set; }
public bool IsActive { get; set; }
}

View file

@ -0,0 +1,34 @@
// Domain/Entities/HrDepartment.cs
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Kurs.Platform.Entities;
public class Department : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Guid? ParentDepartmentId { get; set; }
public Department ParentDepartment { get; set; }
public ICollection<Department> SubDepartments { get; set; }
public Guid? ManagerId { get; set; }
//public HrEmployee Manager { get; set; }
public Guid? CostCenterId { get; set; }
//public HrCostCenter CostCenter { get; set; }
public int Budget { get; set; }
public bool IsActive { get; set; }
public Department()
{
SubDepartments = [];
}
}

View file

@ -0,0 +1,12 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Kurs.Platform.Entities;
public class EmploymentType : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Name { get; set; }
}

View file

@ -0,0 +1,23 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Kurs.Platform.Entities;
public class JobPosition : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Guid DepartmentId { get; set; }
public string Level { get; set; }
public int MinSalary { get; set; }
public int MaxSalary { get; set; }
public Guid CurrencyId { get; set; }
public string RequiredSkills { get; set; }
public string Responsibilities { get; set; }
public string Qualifications { get; set; }
public bool IsActive { get; set; }
}

View file

@ -20,35 +20,36 @@ public class DefaultValueHelper : ITransientDependency
} }
public string GetDefaultValue(string strValue) public string GetDefaultValue(string strValue)
{ {
if (string.IsNullOrEmpty(strValue)) if (string.IsNullOrEmpty(strValue))
return strValue; return strValue;
// 🔹 TenantId değişimi özel ele alınacak var result = strValue
var result = strValue .Replace(PlatformConsts.DefaultValues.UserId, _currentUser.Id?.ToString() ?? Guid.Empty.ToString())
.Replace(PlatformConsts.DefaultValues.UserId, _currentUser.Id?.ToString() ?? Guid.Empty.ToString()) .Replace(PlatformConsts.DefaultValues.UserName, _currentUser.UserName ?? string.Empty)
.Replace(PlatformConsts.DefaultValues.UserName, _currentUser.UserName ?? string.Empty) .Replace(PlatformConsts.DefaultValues.Roles, string.Join("','", _currentUser.Roles ?? Array.Empty<string>()))
.Replace(PlatformConsts.DefaultValues.Roles, string.Join("','", _currentUser.Roles ?? Array.Empty<string>())) .Replace(PlatformConsts.DefaultValues.Now, DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture));
.Replace(PlatformConsts.DefaultValues.Now, DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture));
// 🔹 TenantId özel durumu: NULL => IS NULL, varsa => = 'GUID' // 🔹 TenantId özel durumu: NULL => IS NULL, varsa => = 'GUID'
if (result.Contains(PlatformConsts.DefaultValues.TenantId)) if (_currentTenant?.Id.HasValue == true)
{ {
if (_currentTenant.Id.HasValue) result = result.Replace(
{ $"= '{PlatformConsts.DefaultValues.TenantId}'",
result = result.Replace( $"= '{_currentTenant.Id}'"
$"= '{PlatformConsts.DefaultValues.TenantId}'", ).Replace(
$"= '{_currentTenant.Id}'" PlatformConsts.DefaultValues.TenantId,
); _currentTenant.Id.ToString()
} );
else }
{ else
// Boşsa: TenantId IS NULL yaz {
result = result.Replace( result = result.Replace(
$"= '{PlatformConsts.DefaultValues.TenantId}'", $"= '{PlatformConsts.DefaultValues.TenantId}'",
"IS NULL" "IS NULL"
); ).Replace(
} PlatformConsts.DefaultValues.TenantId,
"NULL"
);
} }
return result; return result;

View file

@ -1633,5 +1633,72 @@ public class PlatformDbContext :
.HasForeignKey(x => x.CurrencyId) .HasForeignKey(x => x.CurrencyId)
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
}); });
builder.Entity<EmploymentType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.EmploymentType)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(100);
});
builder.Entity<JobPosition>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Code).IsRequired().HasMaxLength(50);
b.Property(x => x.Name).IsRequired().HasMaxLength(150);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Level).HasMaxLength(50);
b.Property(x => x.RequiredSkills).HasColumnType("text");
b.Property(x => x.Responsibilities).HasColumnType("text");
b.Property(x => x.Qualifications).HasColumnType("text");
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<Badge>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Badge)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Code).IsRequired().HasMaxLength(50);
b.Property(x => x.Name).IsRequired().HasMaxLength(150);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Icon).HasMaxLength(10);
b.Property(x => x.Color).HasMaxLength(20);
b.Property(x => x.BackgroundColor).HasMaxLength(20);
b.Property(x => x.Category).HasMaxLength(100);
b.Property(x => x.Criteria).HasMaxLength(500);
b.Property(x => x.Rarity).HasMaxLength(50);
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<Department>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Code).IsRequired().HasMaxLength(20);
b.Property(x => x.Name).IsRequired().HasMaxLength(100);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Budget).HasDefaultValue(0);
b.Property(x => x.IsActive).HasDefaultValue(true);
b.HasOne(x => x.ParentDepartment)
.WithMany(x => x.SubDepartments)
.HasForeignKey(x => x.ParentDepartmentId)
.OnDelete(DeleteBehavior.Restrict);
// b.HasOne(x => x.Manager)
// .WithMany()
// .HasForeignKey(x => x.ManagerId)
// .OnDelete(DeleteBehavior.Restrict);
// b.HasOne(x => x.CostCenter)
// .WithMany()
// .HasForeignKey(x => x.CostCenterId)
// .OnDelete(DeleteBehavior.Restrict);
});
} }
} }

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Kurs.Platform.Migrations namespace Kurs.Platform.Migrations
{ {
[DbContext(typeof(PlatformDbContext))] [DbContext(typeof(PlatformDbContext))]
[Migration("20251020201144_Initial")] [Migration("20251021111101_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -2831,6 +2831,86 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Adm_Demo", (string)null); b.ToTable("T_Adm_Demo", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<int>("Budget")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<Guid?>("CostCenterId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<Guid?>("ManagerId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("ParentDepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.HasIndex("ParentDepartmentId");
b.ToTable("T_Hr_Department", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Disease", b => modelBuilder.Entity("Kurs.Platform.Entities.Disease", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3056,6 +3136,56 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Adm_EducationStatus", (string)null); b.ToTable("T_Adm_EducationStatus", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.EmploymentType", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_EmploymentType", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Event", b => modelBuilder.Entity("Kurs.Platform.Entities.Event", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3391,6 +3521,97 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Sas_GlobalSearch", (string)null); b.ToTable("T_Sas_GlobalSearch", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.HrBadge", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("BackgroundColor")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("Category")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Color")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("Criteria")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("Icon")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<int>("Points")
.HasColumnType("int");
b.Property<string>("Rarity")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_Badge", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b => modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3558,6 +3779,95 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Sas_IpRestriction", (string)null); b.ToTable("T_Sas_IpRestriction", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.JobPosition", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid>("CurrencyId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid>("DepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Level")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("MaxSalary")
.HasColumnType("int");
b.Property<int>("MinSalary")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("Qualifications")
.HasColumnType("text");
b.Property<string>("RequiredSkills")
.HasColumnType("text");
b.Property<string>("Responsibilities")
.HasColumnType("text");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_JobPosition", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b => modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9216,6 +9526,16 @@ namespace Kurs.Platform.Migrations
b.Navigation("Entity"); b.Navigation("Entity");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.HasOne("Kurs.Platform.Entities.Department", "ParentDepartment")
.WithMany("SubDepartments")
.HasForeignKey("ParentDepartmentId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("ParentDepartment");
});
modelBuilder.Entity("Kurs.Platform.Entities.District", b => modelBuilder.Entity("Kurs.Platform.Entities.District", b =>
{ {
b.HasOne("Kurs.Platform.Entities.City", null) b.HasOne("Kurs.Platform.Entities.City", null)
@ -9661,6 +9981,11 @@ namespace Kurs.Platform.Migrations
b.Navigation("Fields"); b.Navigation("Fields");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.Navigation("SubDepartments");
});
modelBuilder.Entity("Kurs.Platform.Entities.Event", b => modelBuilder.Entity("Kurs.Platform.Entities.Event", b =>
{ {
b.Navigation("Comments"); b.Navigation("Comments");

View file

@ -1748,6 +1748,120 @@ namespace Kurs.Platform.Migrations
table.PrimaryKey("PK_T_Crd_QuestionTag", x => x.Id); table.PrimaryKey("PK_T_Crd_QuestionTag", x => x.Id);
}); });
migrationBuilder.CreateTable(
name: "T_Hr_Badge",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Code = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Name = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
Icon = table.Column<string>(type: "nvarchar(10)", maxLength: 10, nullable: true),
Color = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
BackgroundColor = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
Category = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
Criteria = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
Points = table.Column<int>(type: "int", nullable: false),
Rarity = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_T_Hr_Badge", x => x.Id);
});
migrationBuilder.CreateTable(
name: "T_Hr_Department",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Code = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: false),
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
ParentDepartmentId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ManagerId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CostCenterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Budget = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_T_Hr_Department", x => x.Id);
table.ForeignKey(
name: "FK_T_Hr_Department_T_Hr_Department_ParentDepartmentId",
column: x => x.ParentDepartmentId,
principalTable: "T_Hr_Department",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "T_Hr_EmploymentType",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Name = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_T_Hr_EmploymentType", x => x.Id);
});
migrationBuilder.CreateTable(
name: "T_Hr_JobPosition",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Code = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Name = table.Column<string>(type: "nvarchar(150)", maxLength: 150, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
DepartmentId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Level = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
MinSalary = table.Column<int>(type: "int", nullable: false),
MaxSalary = table.Column<int>(type: "int", nullable: false),
CurrencyId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
RequiredSkills = table.Column<string>(type: "text", nullable: true),
Responsibilities = table.Column<string>(type: "text", nullable: true),
Qualifications = table.Column<string>(type: "text", nullable: true),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_T_Hr_JobPosition", x => x.Id);
});
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "T_P_Activity", name: "T_P_Activity",
columns: table => new columns: table => new
@ -4225,6 +4339,11 @@ namespace Kurs.Platform.Migrations
table: "T_Crd_QuestionOption", table: "T_Crd_QuestionOption",
column: "QuestionId"); column: "QuestionId");
migrationBuilder.CreateIndex(
name: "IX_T_Hr_Department_ParentDepartmentId",
table: "T_Hr_Department",
column: "ParentDepartmentId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_T_Sas_ApiEndpoint_EntityId", name: "IX_T_Sas_ApiEndpoint_EntityId",
table: "T_Sas_ApiEndpoint", table: "T_Sas_ApiEndpoint",
@ -4496,6 +4615,18 @@ namespace Kurs.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "T_Crd_QuestionTag"); name: "T_Crd_QuestionTag");
migrationBuilder.DropTable(
name: "T_Hr_Badge");
migrationBuilder.DropTable(
name: "T_Hr_Department");
migrationBuilder.DropTable(
name: "T_Hr_EmploymentType");
migrationBuilder.DropTable(
name: "T_Hr_JobPosition");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "T_P_Activity"); name: "T_P_Activity");

View file

@ -2828,6 +2828,86 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Adm_Demo", (string)null); b.ToTable("T_Adm_Demo", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<int>("Budget")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<Guid?>("CostCenterId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<Guid?>("ManagerId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("ParentDepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.HasIndex("ParentDepartmentId");
b.ToTable("T_Hr_Department", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Disease", b => modelBuilder.Entity("Kurs.Platform.Entities.Disease", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3053,6 +3133,56 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Adm_EducationStatus", (string)null); b.ToTable("T_Adm_EducationStatus", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.EmploymentType", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_EmploymentType", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Event", b => modelBuilder.Entity("Kurs.Platform.Entities.Event", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3388,6 +3518,97 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Sas_GlobalSearch", (string)null); b.ToTable("T_Sas_GlobalSearch", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.HrBadge", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("BackgroundColor")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("Category")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Color")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("Criteria")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("Icon")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<int>("Points")
.HasColumnType("int");
b.Property<string>("Rarity")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_Badge", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b => modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -3555,6 +3776,95 @@ namespace Kurs.Platform.Migrations
b.ToTable("T_Sas_IpRestriction", (string)null); b.ToTable("T_Sas_IpRestriction", (string)null);
}); });
modelBuilder.Entity("Kurs.Platform.Entities.JobPosition", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid>("CurrencyId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid>("DepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Level")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("MaxSalary")
.HasColumnType("int");
b.Property<int>("MinSalary")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("Qualifications")
.HasColumnType("text");
b.Property<string>("RequiredSkills")
.HasColumnType("text");
b.Property<string>("Responsibilities")
.HasColumnType("text");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("T_Hr_JobPosition", (string)null);
});
modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b => modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9213,6 +9523,16 @@ namespace Kurs.Platform.Migrations
b.Navigation("Entity"); b.Navigation("Entity");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.HasOne("Kurs.Platform.Entities.Department", "ParentDepartment")
.WithMany("SubDepartments")
.HasForeignKey("ParentDepartmentId")
.OnDelete(DeleteBehavior.Restrict);
b.Navigation("ParentDepartment");
});
modelBuilder.Entity("Kurs.Platform.Entities.District", b => modelBuilder.Entity("Kurs.Platform.Entities.District", b =>
{ {
b.HasOne("Kurs.Platform.Entities.City", null) b.HasOne("Kurs.Platform.Entities.City", null)
@ -9658,6 +9978,11 @@ namespace Kurs.Platform.Migrations
b.Navigation("Fields"); b.Navigation("Fields");
}); });
modelBuilder.Entity("Kurs.Platform.Entities.Department", b =>
{
b.Navigation("SubDepartments");
});
modelBuilder.Entity("Kurs.Platform.Entities.Event", b => modelBuilder.Entity("Kurs.Platform.Entities.Event", b =>
{ {
b.Navigation("Comments"); b.Navigation("Comments");