initial commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
namespace Domain.Common;
|
||||
|
||||
public class BaseEntity : IHasSequentialId, IHasIsDeleted, IHasAudit
|
||||
{
|
||||
public string Id { get; set; } = null!;
|
||||
public bool IsDeleted { get; set; }
|
||||
public DateTime? CreatedAtUtc { get; set; }
|
||||
public string? CreatedById { get; set; }
|
||||
public DateTime? UpdatedAtUtc { get; set; }
|
||||
public string? UpdatedById { get; set; }
|
||||
|
||||
public BaseEntity()
|
||||
{
|
||||
Id = GenerateSequentialGuid();
|
||||
IsDeleted = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static readonly object _lock = new object();
|
||||
|
||||
private string GenerateSequentialGuid()
|
||||
{
|
||||
byte[] guidArray = Guid.NewGuid().ToByteArray();
|
||||
|
||||
DateTime baseDate = new DateTime(1900, 1, 1);
|
||||
DateTime now = DateTime.UtcNow;
|
||||
|
||||
TimeSpan timeSpan = now - baseDate;
|
||||
byte[] daysArray = BitConverter.GetBytes(timeSpan.Days);
|
||||
byte[] msecsArray = BitConverter.GetBytes((long)(timeSpan.TotalMilliseconds % 86400000));
|
||||
|
||||
if (BitConverter.IsLittleEndian)
|
||||
{
|
||||
Array.Reverse(daysArray);
|
||||
Array.Reverse(msecsArray);
|
||||
}
|
||||
|
||||
lock (_lock)
|
||||
{
|
||||
Array.Copy(daysArray, daysArray.Length - 2, guidArray, guidArray.Length - 6, 2);
|
||||
Array.Copy(msecsArray, msecsArray.Length - 4, guidArray, guidArray.Length - 4, 4);
|
||||
}
|
||||
|
||||
return new Guid(guidArray).ToString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
namespace Domain.Common;
|
||||
|
||||
public static class Constants
|
||||
{
|
||||
public static class LengthConsts
|
||||
{
|
||||
public const int S = 50;
|
||||
public const int M = 255;
|
||||
public const int L = 2000;
|
||||
public const int XL = 4000;
|
||||
}
|
||||
public static class NameConsts
|
||||
{
|
||||
public const int MinLength = 2;
|
||||
public const int MaxLength = LengthConsts.M;
|
||||
}
|
||||
public static class CodeConsts
|
||||
{
|
||||
public const int MinLength = 1;
|
||||
public const int MaxLength = LengthConsts.S;
|
||||
}
|
||||
public static class DescriptionConsts
|
||||
{
|
||||
public const int MaxLength = LengthConsts.XL;
|
||||
}
|
||||
public static class EmailConsts
|
||||
{
|
||||
public const int MinLength = 6;
|
||||
public const int MaxLength = LengthConsts.M;
|
||||
}
|
||||
public static class IdConsts
|
||||
{
|
||||
public const int MaxLength = LengthConsts.S;
|
||||
}
|
||||
public static class PasswordConsts
|
||||
{
|
||||
public const int MinLength = 6;
|
||||
public const int MaxLength = LengthConsts.M;
|
||||
}
|
||||
public static class PathConsts
|
||||
{
|
||||
public const int MaxLength = LengthConsts.M;
|
||||
}
|
||||
public static class TokenConsts
|
||||
{
|
||||
public const int MaxLength = LengthConsts.XL;
|
||||
public const double ExpiryInDays = 30;
|
||||
}
|
||||
public static class UserIdConsts
|
||||
{
|
||||
public const int MaxLength = 450;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace Domain.Common;
|
||||
|
||||
public interface IHasAudit
|
||||
{
|
||||
public DateTime? CreatedAtUtc { get; set; }
|
||||
public string? CreatedById { get; set; }
|
||||
public DateTime? UpdatedAtUtc { get; set; }
|
||||
public string? UpdatedById { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Domain.Common;
|
||||
|
||||
public interface IHasIsDeleted
|
||||
{
|
||||
bool IsDeleted { get; }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace Domain.Common;
|
||||
|
||||
public interface IHasSequentialId
|
||||
{
|
||||
string Id { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class CustomerCategory : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class CustomerGroup : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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>();
|
||||
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class ProductGroup : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class UnitMeasure : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -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>();
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class VendorCategory : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using Domain.Common;
|
||||
|
||||
namespace Domain.Entities;
|
||||
|
||||
public class VendorGroup : BaseEntity
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum BudgetStatus
|
||||
{
|
||||
[Description("Draft")]
|
||||
Draft = 0,
|
||||
[Description("Cancelled")]
|
||||
Cancelled = 1,
|
||||
[Description("Confirmed")]
|
||||
Confirmed = 2,
|
||||
[Description("Archived")]
|
||||
Archived = 3
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum CampaignStatus
|
||||
{
|
||||
[Description("Draft")]
|
||||
Draft = 0,
|
||||
[Description("Cancelled")]
|
||||
Cancelled = 1,
|
||||
[Description("Confirmed")]
|
||||
Confirmed = 2,
|
||||
[Description("OnProgress")]
|
||||
OnProgress = 3,
|
||||
[Description("OnHold")]
|
||||
OnHold = 4,
|
||||
[Description("Finished")]
|
||||
Finished = 5,
|
||||
[Description("Archived")]
|
||||
Archived = 6
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum ClosingStatus
|
||||
{
|
||||
[Description("ClosedLost")]
|
||||
ClosedLost = 0,
|
||||
[Description("ClosedWon")]
|
||||
ClosedWon = 1,
|
||||
[Description("OnProgress")]
|
||||
OnProgress = 2
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum ExpenseStatus
|
||||
{
|
||||
[Description("Draft")]
|
||||
Draft = 0,
|
||||
[Description("Cancelled")]
|
||||
Cancelled = 1,
|
||||
[Description("Confirmed")]
|
||||
Confirmed = 2,
|
||||
[Description("Archived")]
|
||||
Archived = 3
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
public enum LeadActivityType
|
||||
{
|
||||
[Description("Other")]
|
||||
Other = 0,
|
||||
[Description("Phone")]
|
||||
Phone = 1,
|
||||
[Description("Email")]
|
||||
Email = 2,
|
||||
[Description("Social Media")]
|
||||
SocialMedia = 3,
|
||||
[Description("Meeting")]
|
||||
Meeting = 4,
|
||||
[Description("Event")]
|
||||
Event = 5
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum PipelineStage
|
||||
{
|
||||
[Description("1. Prospecting")]
|
||||
Prospecting = 0,
|
||||
[Description("2. Qualification")]
|
||||
Qualification = 1,
|
||||
[Description("3. NeedAnalysis")]
|
||||
NeedAnalysis = 2,
|
||||
[Description("4. Proposal")]
|
||||
Proposal = 3,
|
||||
[Description("5. Negotiation")]
|
||||
Negotiation = 4,
|
||||
[Description("6. DecisionMaking")]
|
||||
DecisionMaking = 5,
|
||||
[Description("7. Closed")]
|
||||
Closed = 6
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum PurchaseOrderStatus
|
||||
{
|
||||
[Description("Draft")]
|
||||
Draft = 0,
|
||||
[Description("Cancelled")]
|
||||
Cancelled = 1,
|
||||
[Description("Confirmed")]
|
||||
Confirmed = 2,
|
||||
[Description("Archived")]
|
||||
Archived = 3
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum SalesOrderStatus
|
||||
{
|
||||
[Description("Draft")]
|
||||
Draft = 0,
|
||||
[Description("Cancelled")]
|
||||
Cancelled = 1,
|
||||
[Description("Confirmed")]
|
||||
Confirmed = 2,
|
||||
[Description("Archived")]
|
||||
Archived = 3
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Domain.Enums;
|
||||
|
||||
public enum UserType
|
||||
{
|
||||
[Description("Internal")]
|
||||
Internal = 0,
|
||||
[Description("Customer")]
|
||||
Customer = 1,
|
||||
[Description("Vendor")]
|
||||
Vendor = 2
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v9.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v9.0": {
|
||||
"Domain/1.0.0": {
|
||||
"runtime": {
|
||||
"Domain.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Domain/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user