initial commit

This commit is contained in:
2026-07-21 15:36:49 +07:00
commit 77f66132bc
2640 changed files with 850901 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class Budget : BaseEntity
{
public string? Number { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public DateTime? BudgetDate { get; set; }
public BudgetStatus? Status { get; set; }
public double? Amount { get; set; }
public string? CampaignId { get; set; }
public Campaign? Campaign { get; set; }
}
+20
View File
@@ -0,0 +1,20 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class Campaign : BaseEntity
{
public string? Number { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public double? TargetRevenueAmount { get; set; }
public DateTime? CampaignDateStart { get; set; }
public DateTime? CampaignDateFinish { get; set; }
public CampaignStatus? Status { get; set; }
public string? SalesTeamId { get; set; }
public SalesTeam? SalesTeam { get; set; }
public ICollection<Budget> CampaignBudgetList { get; set; } = new List<Budget>();
public ICollection<Expense> CampaignExpenseList { get; set; } = new List<Expense>();
public ICollection<Lead> CampaignLeadList { get; set; } = new List<Lead>();
}
+19
View File
@@ -0,0 +1,19 @@
using Domain.Common;
namespace Domain.Entities;
public class Company : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public string? Currency { get; set; }
public string? Street { get; set; }
public string? City { get; set; }
public string? State { get; set; }
public string? ZipCode { get; set; }
public string? Country { get; set; }
public string? PhoneNumber { get; set; }
public string? FaxNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Website { get; set; }
}
+31
View File
@@ -0,0 +1,31 @@
using Domain.Common;
namespace Domain.Entities;
public class Customer : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? Description { get; set; }
public string? Street { get; set; }
public string? City { get; set; }
public string? State { get; set; }
public string? ZipCode { get; set; }
public string? Country { get; set; }
public string? PhoneNumber { get; set; }
public string? FaxNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Website { get; set; }
public string? WhatsApp { get; set; }
public string? LinkedIn { get; set; }
public string? Facebook { get; set; }
public string? Instagram { get; set; }
public string? TwitterX { get; set; }
public string? TikTok { get; set; }
public string? CustomerGroupId { get; set; }
public CustomerGroup? CustomerGroup { get; set; }
public string? CustomerCategoryId { get; set; }
public CustomerCategory? CustomerCategory { get; set; }
public ICollection<CustomerContact> CustomerContactList { get; set; } = new List<CustomerContact>();
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class CustomerCategory : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}
+15
View File
@@ -0,0 +1,15 @@
using Domain.Common;
namespace Domain.Entities;
public class CustomerContact : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? JobTitle { get; set; }
public string? PhoneNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Description { get; set; }
public string? CustomerId { get; set; }
public Customer? Customer { get; set; }
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class CustomerGroup : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}
+17
View File
@@ -0,0 +1,17 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class Expense : BaseEntity
{
public string? Number { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public DateTime? ExpenseDate { get; set; }
public ExpenseStatus? Status { get; set; }
public double? Amount { get; set; }
public string? CampaignId { get; set; }
public Campaign? Campaign { get; set; }
}
+12
View File
@@ -0,0 +1,12 @@
using Domain.Common;
namespace Domain.Entities;
public class FileDocument : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public string? OriginalName { get; set; }
public string? GeneratedName { get; set; }
public string? Extension { get; set; }
public long? FileSize { get; set; }
}
+13
View File
@@ -0,0 +1,13 @@
using Domain.Common;
namespace Domain.Entities;
public class FileImage : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public string? OriginalName { get; set; }
public string? GeneratedName { get; set; }
public string? Extension { get; set; }
public long? FileSize { get; set; }
}
+46
View File
@@ -0,0 +1,46 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class Lead : BaseEntity
{
public string? Number { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public string? CompanyName { get; set; }
public string? CompanyDescription { get; set; }
public string? CompanyAddressStreet { get; set; }
public string? CompanyAddressCity { get; set; }
public string? CompanyAddressState { get; set; }
public string? CompanyAddressZipCode { get; set; }
public string? CompanyAddressCountry { get; set; }
public string? CompanyPhoneNumber { get; set; }
public string? CompanyFaxNumber { get; set; }
public string? CompanyEmail { get; set; }
public string? CompanyWebsite { get; set; }
public string? CompanyWhatsApp { get; set; }
public string? CompanyLinkedIn { get; set; }
public string? CompanyFacebook { get; set; }
public string? CompanyInstagram { get; set; }
public string? CompanyTwitter { get; set; }
public DateTime? DateProspecting { get; set; }
public DateTime? DateClosingEstimation { get; set; }
public DateTime? DateClosingActual { get; set; }
public double? AmountTargeted { get; set; }
public double? AmountClosed { get; set; }
public double? BudgetScore { get; set; }
public double? AuthorityScore { get; set; }
public double? NeedScore { get; set; }
public double? TimelineScore { get; set; }
public PipelineStage? PipelineStage { get; set; }
public ClosingStatus? ClosingStatus { get; set; }
public string? ClosingNote { get; set; }
public string? CampaignId { get; set; }
public Campaign? Campaign { get; set; }
public string? SalesTeamId { get; set; }
public SalesTeam? SalesTeam { get; set; }
public ICollection<LeadContact> LeadContacts { get; set; } = new List<LeadContact>();
public ICollection<LeadActivity> LeadActivities { get; set; } = new List<LeadActivity>();
}
+17
View File
@@ -0,0 +1,17 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class LeadActivity : BaseEntity
{
public string? LeadId { get; set; }
public Lead? Lead { get; set; }
public string? Number { get; set; }
public string? Summary { get; set; }
public string? Description { get; set; }
public DateTime? FromDate { get; set; }
public DateTime? ToDate { get; set; }
public LeadActivityType? Type { get; set; }
public string? AttachmentName { get; set; }
}
+28
View File
@@ -0,0 +1,28 @@
using Domain.Common;
namespace Domain.Entities;
public class LeadContact : BaseEntity
{
public string? LeadId { get; set; }
public Lead? Lead { get; set; }
public string? Number { get; set; }
public string? FullName { get; set; }
public string? Description { get; set; }
public string? AddressStreet { get; set; }
public string? AddressCity { get; set; }
public string? AddressState { get; set; }
public string? AddressZipCode { get; set; }
public string? AddressCountry { get; set; }
public string? PhoneNumber { get; set; }
public string? FaxNumber { get; set; }
public string? MobileNumber { get; set; }
public string? Email { get; set; }
public string? Website { get; set; }
public string? WhatsApp { get; set; }
public string? LinkedIn { get; set; }
public string? Facebook { get; set; }
public string? Twitter { get; set; }
public string? Instagram { get; set; }
public string? AvatarName { get; set; }
}
+12
View File
@@ -0,0 +1,12 @@
using Domain.Common;
namespace Domain.Entities;
public class NumberSequence : BaseEntity
{
public string? EntityName { get; set; }
public string? Prefix { get; set; }
public string? Suffix { get; set; }
public int? LastUsedCount { get; set; }
}
+16
View File
@@ -0,0 +1,16 @@
using Domain.Common;
namespace Domain.Entities;
public class Product : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? Description { get; set; }
public double? UnitPrice { get; set; }
public bool? Physical { get; set; } = true;
public string? UnitMeasureId { get; set; }
public UnitMeasure? UnitMeasure { get; set; }
public string? ProductGroupId { get; set; }
public ProductGroup? ProductGroup { get; set; }
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class ProductGroup : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}
+20
View File
@@ -0,0 +1,20 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class PurchaseOrder : BaseEntity
{
public string? Number { get; set; }
public DateTime? OrderDate { get; set; }
public PurchaseOrderStatus? OrderStatus { get; set; }
public string? Description { get; set; }
public string? VendorId { get; set; }
public Vendor? Vendor { get; set; }
public string? TaxId { get; set; }
public Tax? Tax { get; set; }
public double? BeforeTaxAmount { get; set; }
public double? TaxAmount { get; set; }
public double? AfterTaxAmount { get; set; }
public ICollection<PurchaseOrderItem> PurchaseOrderItemList { get; set; } = new List<PurchaseOrderItem>();
}
+15
View File
@@ -0,0 +1,15 @@
using Domain.Common;
namespace Domain.Entities;
public class PurchaseOrderItem : BaseEntity
{
public string? PurchaseOrderId { get; set; }
public PurchaseOrder? PurchaseOrder { get; set; }
public string? ProductId { get; set; }
public Product? Product { get; set; }
public string? Summary { get; set; }
public double? UnitPrice { get; set; } = 0;
public double? Quantity { get; set; } = 1;
public double? Total { get; set; } = 0;
}
+20
View File
@@ -0,0 +1,20 @@
using Domain.Common;
using Domain.Enums;
namespace Domain.Entities;
public class SalesOrder : BaseEntity
{
public string? Number { get; set; }
public DateTime? OrderDate { get; set; }
public SalesOrderStatus? OrderStatus { get; set; }
public string? Description { get; set; }
public string? CustomerId { get; set; }
public Customer? Customer { get; set; }
public string? TaxId { get; set; }
public Tax? Tax { get; set; }
public double? BeforeTaxAmount { get; set; }
public double? TaxAmount { get; set; }
public double? AfterTaxAmount { get; set; }
public ICollection<SalesOrderItem> SalesOrderItemList { get; set; } = new List<SalesOrderItem>();
}
+16
View File
@@ -0,0 +1,16 @@
using Domain.Common;
namespace Domain.Entities;
public class SalesOrderItem : BaseEntity
{
public string? SalesOrderId { get; set; }
public SalesOrder? SalesOrder { get; set; }
public string? ProductId { get; set; }
public Product? Product { get; set; }
public string? Summary { get; set; }
public double? UnitPrice { get; set; } = 0;
public double? Quantity { get; set; } = 1;
public double? Total { get; set; } = 0;
}
@@ -0,0 +1,17 @@
using Domain.Common;
namespace Domain.Entities;
public class SalesRepresentative : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? JobTitle { get; set; }
public string? EmployeeNumber { get; set; }
public string? PhoneNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Description { get; set; }
public string? SalesTeamId { get; set; }
public SalesTeam? SalesTeam { get; set; }
}
+10
View File
@@ -0,0 +1,10 @@
using Domain.Common;
namespace Domain.Entities;
public class SalesTeam : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public ICollection<SalesRepresentative> SalesRepresentativeList { get; set; } = new List<SalesRepresentative>();
}
+10
View File
@@ -0,0 +1,10 @@
using Domain.Common;
namespace Domain.Entities;
public class Tax : BaseEntity
{
public string? Name { get; set; }
public double? Percentage { get; set; }
public string? Description { get; set; }
}
+10
View File
@@ -0,0 +1,10 @@
using Domain.Common;
namespace Domain.Entities;
public class Todo : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public ICollection<TodoItem> TodoItemList { get; set; } = new List<TodoItem>();
}
+12
View File
@@ -0,0 +1,12 @@
using Domain.Common;
namespace Domain.Entities;
public class TodoItem : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
public string? TodoId { get; set; }
public Todo? Todo { get; set; }
}
+10
View File
@@ -0,0 +1,10 @@
using Domain.Common;
namespace Domain.Entities;
public class Token : BaseEntity
{
public string? UserId { get; set; }
public string? RefreshToken { get; set; }
public DateTimeOffset ExpiryDate { get; set; }
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class UnitMeasure : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}
+31
View File
@@ -0,0 +1,31 @@
using Domain.Common;
namespace Domain.Entities;
public class Vendor : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? Description { get; set; }
public string? Street { get; set; }
public string? City { get; set; }
public string? State { get; set; }
public string? ZipCode { get; set; }
public string? Country { get; set; }
public string? PhoneNumber { get; set; }
public string? FaxNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Website { get; set; }
public string? WhatsApp { get; set; }
public string? LinkedIn { get; set; }
public string? Facebook { get; set; }
public string? Instagram { get; set; }
public string? TwitterX { get; set; }
public string? TikTok { get; set; }
public string? VendorGroupId { get; set; }
public VendorGroup? VendorGroup { get; set; }
public string? VendorCategoryId { get; set; }
public VendorCategory? VendorCategory { get; set; }
public ICollection<VendorContact> VendorContactList { get; set; } = new List<VendorContact>();
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class VendorCategory : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}
+15
View File
@@ -0,0 +1,15 @@
using Domain.Common;
namespace Domain.Entities;
public class VendorContact : BaseEntity
{
public string? Name { get; set; }
public string? Number { get; set; }
public string? JobTitle { get; set; }
public string? PhoneNumber { get; set; }
public string? EmailAddress { get; set; }
public string? Description { get; set; }
public string? VendorId { get; set; }
public Vendor? Vendor { get; set; }
}
+9
View File
@@ -0,0 +1,9 @@
using Domain.Common;
namespace Domain.Entities;
public class VendorGroup : BaseEntity
{
public string? Name { get; set; }
public string? Description { get; set; }
}