添加项目文件。
This commit is contained in:
17
Atomx.Common/Atomx.Common.csproj
Normal file
17
Atomx.Common/Atomx.Common.csproj
Normal file
@@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Mapster.DependencyInjection" Version="1.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Atomx.Utils\Atomx.Utils.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
60
Atomx.Common/Configuration/ConfigKeys.cs
Normal file
60
Atomx.Common/Configuration/ConfigKeys.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
namespace Atomx.Common.Configuration
|
||||
{
|
||||
public static class ConfigKeys
|
||||
{
|
||||
/// <summary>
|
||||
/// 常规通用 key
|
||||
/// </summary>
|
||||
public const string General = "System.General";
|
||||
|
||||
/// <summary>
|
||||
/// 文件上传 key
|
||||
/// </summary>
|
||||
public const string Upload = "System.Upload";
|
||||
|
||||
/// <summary>
|
||||
/// 系统消息 key
|
||||
/// </summary>
|
||||
public const string MessageProvider = "System.Message.Provider";
|
||||
|
||||
/// <summary>
|
||||
/// 邮件验证码 key
|
||||
/// </summary>
|
||||
public const string EmailCodeTemplate = "Email.Code.Template";
|
||||
|
||||
/// <summary>
|
||||
/// 邮件忘记密码 key
|
||||
/// </summary>
|
||||
public const string EmailForgetTemplate = "Email.Forget.Template";
|
||||
|
||||
/// <summary>
|
||||
/// 邮件促销活动 key
|
||||
/// </summary>
|
||||
public const string EmailPromotionTemplate = "Email.Promotion.Template";
|
||||
|
||||
/// <summary>
|
||||
/// 短信验证码 key
|
||||
/// </summary>
|
||||
public const string SMSCodeTemplate = "SMS.Code.Template";
|
||||
|
||||
/// <summary>
|
||||
/// 游戏商店最后刷新时间 key 模版
|
||||
/// </summary>
|
||||
public const string GameShopLastRefreshKeyTemplate = "GameShop.{0}.LastRefresh";
|
||||
|
||||
/// <summary>
|
||||
/// 游戏商店道具刷新缓存时间 key 模版
|
||||
/// </summary>
|
||||
public const string GameShopCacheTimeKeyTemplate = "GameShop.{0}.CacheTime";
|
||||
|
||||
/// <summary>
|
||||
/// 签到重置间隔 key 模版
|
||||
/// </summary>
|
||||
public const string SignInResetIntervalKeyTemplate = "SignIn.{0}.Reset.Interval";
|
||||
|
||||
/// <summary>
|
||||
/// 签到最后重置时间 key 模版
|
||||
/// </summary>
|
||||
public const string SignInLastResetKeyTemplate = "SignIn.{0}.Last.Reset.Time";
|
||||
}
|
||||
}
|
||||
50
Atomx.Common/Configuration/CurrencyNumber.cs
Normal file
50
Atomx.Common/Configuration/CurrencyNumber.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
namespace Atomx.Common.Configuration
|
||||
{
|
||||
public static class CurrencyNumber
|
||||
{
|
||||
/// <summary>
|
||||
/// 金币
|
||||
/// </summary>
|
||||
public const int Gold = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 宝石
|
||||
/// </summary>
|
||||
public const int Gem = 2;
|
||||
|
||||
/// <summary>
|
||||
/// 美元
|
||||
/// </summary>
|
||||
public const int USD = 100;
|
||||
|
||||
/// <summary>
|
||||
/// 人民币
|
||||
/// </summary>
|
||||
public const int CNY = 101;
|
||||
|
||||
/// <summary>
|
||||
/// 欧元
|
||||
/// </summary>
|
||||
public const int EUR = 102;
|
||||
|
||||
/// <summary>
|
||||
/// 港币
|
||||
/// </summary>
|
||||
public const int HKD = 102;
|
||||
|
||||
/// <summary>
|
||||
/// USDT
|
||||
/// </summary>
|
||||
public const int USDT = 1000;
|
||||
|
||||
/// <summary>
|
||||
/// 比特币
|
||||
/// </summary>
|
||||
public const int Bitcoin = 1001;
|
||||
|
||||
/// <summary>
|
||||
/// 以太坊
|
||||
/// </summary>
|
||||
public const int Ethereum = 1001;
|
||||
}
|
||||
}
|
||||
60
Atomx.Common/Configuration/GeneralConfig.cs
Normal file
60
Atomx.Common/Configuration/GeneralConfig.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
namespace Atomx.Common.Configuration
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统基本配置
|
||||
/// </summary>
|
||||
public class GeneralConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 网站的LOGO
|
||||
/// </summary>
|
||||
public string Logo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta 关键词
|
||||
/// </summary>
|
||||
public string Keywords { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta 介绍
|
||||
/// </summary>
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 域名
|
||||
/// </summary>
|
||||
public string Domain { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 联系我们邮箱
|
||||
/// </summary>
|
||||
public string ContactEmail { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用登录错误
|
||||
/// </summary>
|
||||
public bool EnableLoginErrorLock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录错误最大上限
|
||||
/// </summary>
|
||||
public int LoginErrorMaxUpper { get; set; } = 5;
|
||||
|
||||
/// <summary>
|
||||
/// 登录错误锁定时长
|
||||
/// </summary>
|
||||
public int LoginErrorLockDuration { get; set; } = 30;
|
||||
|
||||
/// <summary>
|
||||
/// 是否多个法定货币钱包
|
||||
/// </summary>
|
||||
public bool MultipleLegalTenderWallets { get; set; } = false;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
9
Atomx.Common/Configuration/StorageKeys.cs
Normal file
9
Atomx.Common/Configuration/StorageKeys.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Atomx.Common.Configuration
|
||||
{
|
||||
public static class StorageKeys
|
||||
{
|
||||
public const string JWTTokenKeyName = "token";
|
||||
|
||||
public const string RefreshTokenKeyName = "refresh";
|
||||
}
|
||||
}
|
||||
40
Atomx.Common/Configuration/UploadConfig.cs
Normal file
40
Atomx.Common/Configuration/UploadConfig.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
namespace Atomx.Common.Configuration
|
||||
{
|
||||
public class UploadConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 图片文件访问域名
|
||||
/// </summary>
|
||||
public string ImageDomain { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 上传图片最大限制
|
||||
/// </summary>
|
||||
public int ImageMaxSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上传文件最大限制
|
||||
/// </summary>
|
||||
public int FileMaxSize { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 允许上传图片类型
|
||||
/// </summary>
|
||||
public string ImageTypes { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 允许上传文件类型
|
||||
/// </summary>
|
||||
public string FileTypes { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 远程图片是否自动保存
|
||||
/// </summary>
|
||||
public bool RemoteAutoDownloadSave { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 启用云对象存储
|
||||
/// </summary>
|
||||
public bool StorageServiceEnabled { get; set; }
|
||||
}
|
||||
}
|
||||
220
Atomx.Common/Constant/CacheKeys.cs
Normal file
220
Atomx.Common/Constant/CacheKeys.cs
Normal file
@@ -0,0 +1,220 @@
|
||||
namespace Atomx.Common.Constant
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 系统缓存 key
|
||||
/// </summary>
|
||||
public class CacheKeys {
|
||||
/// <summary>
|
||||
/// 管理系统菜单缓存 key
|
||||
/// </summary>
|
||||
public const string AdminMenu = "Config.AdminMenu";
|
||||
|
||||
/// <summary>
|
||||
/// 角色权限缓存KEY
|
||||
/// </summary>
|
||||
public const string Roles = "Config.Roles";
|
||||
|
||||
/// <summary>
|
||||
/// 权限缓存KEY
|
||||
/// </summary>
|
||||
public const string Permissions = "Config.Permissions";
|
||||
|
||||
/// <summary>
|
||||
/// 常规设置缓存
|
||||
/// </summary>
|
||||
public const string GeneralConfig = "Config.General";
|
||||
|
||||
/// <summary>
|
||||
/// 邮件服务设置
|
||||
/// </summary>
|
||||
public const string EmailConfig = "Config.EmailServer";
|
||||
|
||||
/// <summary>
|
||||
/// 忘记交易密码邮件内容模板
|
||||
/// </summary>
|
||||
public const string ForgetTransactionPasswordEmailTemplateConfig = "Config.ForgetTransactionPasswordEmailTemplate";
|
||||
|
||||
/// <summary>
|
||||
/// 忘记密码邮件内容模板
|
||||
/// </summary>
|
||||
public const string ForgetPasswordEmailTemplateConfig = "Config.ForgetPasswordEmailTemplate";
|
||||
|
||||
/// <summary>
|
||||
/// 注册激活邮件
|
||||
/// </summary>
|
||||
public const string RegisterActiveEmailTemplateConfig = "Config.RegisterActiveEmailTemplate";
|
||||
|
||||
/// <summary>
|
||||
/// 制造商缓存信息
|
||||
/// </summary>
|
||||
public const string Manufacturers = "Manufacturers";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string ProductCategories = "Product.Categories";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string ProductNewList = "Product.NewList";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string ProductNewListPrefix = "Product.NewList.";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string ProductHotList = "Product.HotList";
|
||||
|
||||
/// <summary>
|
||||
/// 产品精选
|
||||
/// </summary>
|
||||
public const string ProductFeaturedList = "Product.FeaturedList";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string ProductHotListPrefix = "Product.HotList.";
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类缓存信息
|
||||
/// </summary>
|
||||
public const string MarketingProduct = "Marketing.Product";
|
||||
|
||||
/// <summary>
|
||||
/// 内容分类缓存信息
|
||||
/// </summary>
|
||||
public const string ContentCategories = "Content.Categories";
|
||||
|
||||
public const string Area = "Area";
|
||||
|
||||
/// <summary>
|
||||
/// 国家数据缓存
|
||||
/// </summary>
|
||||
public const string Country = "Area.Country";
|
||||
|
||||
/// <summary>
|
||||
/// 省州数据缓存
|
||||
/// </summary>
|
||||
public const string Province = "Area.Province";
|
||||
|
||||
/// <summary>
|
||||
/// 城市数据缓存
|
||||
/// </summary>
|
||||
public const string City = "Area.City";
|
||||
|
||||
/// <summary>
|
||||
/// 地区数据
|
||||
/// </summary>
|
||||
public const string Regions = "Regions";
|
||||
|
||||
/// <summary>
|
||||
/// 地区树数据
|
||||
/// </summary>
|
||||
public const string RegionTree = "RegionTree";
|
||||
|
||||
/// <summary>
|
||||
/// 语言数据
|
||||
/// </summary>
|
||||
public const string Languages = "Languages";
|
||||
|
||||
/// <summary>
|
||||
/// 语言数据
|
||||
/// </summary>
|
||||
public const string LocalizedPropertyPrefix = "LocalizedProperty.";
|
||||
|
||||
/// <summary>
|
||||
/// 店铺套餐包
|
||||
/// </summary>
|
||||
public const string StorePackage = "StorePackage";
|
||||
|
||||
/// <summary>
|
||||
/// 店铺数据集
|
||||
/// </summary>
|
||||
public const string Stores = "Stores";
|
||||
|
||||
/// <summary>
|
||||
/// 店铺数据集
|
||||
/// </summary>
|
||||
public const string StorePrefix = "Store.";
|
||||
|
||||
/// <summary>
|
||||
/// 支付通道
|
||||
/// </summary>
|
||||
public const string PaymentChannels = "Payment.Channels";
|
||||
|
||||
/// <summary>
|
||||
/// 货币信息
|
||||
/// </summary>
|
||||
public const string Currencies = "Currencies";
|
||||
|
||||
/// <summary>
|
||||
/// 货币信息
|
||||
/// </summary>
|
||||
public const string CurrencyChannel = "CurrencyChannel";
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性
|
||||
/// </summary>
|
||||
public const string ProductAttributes = "Product.Attributes";
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性预设值
|
||||
/// </summary>
|
||||
public const string ProductAttributeOptionsPrefix = "Product.AttributeOption.";
|
||||
|
||||
// <summary>
|
||||
/// 行为日志类型
|
||||
/// </summary>
|
||||
public const string ActionLogType = "ActionLogType";
|
||||
|
||||
// <summary>
|
||||
/// 内容
|
||||
/// </summary>
|
||||
public const string ContentPrefix = "Content.";
|
||||
|
||||
/// <summary>
|
||||
/// 产品
|
||||
/// </summary>
|
||||
public const string ProductPrefix = "Product.";
|
||||
|
||||
/// <summary>
|
||||
/// 产品
|
||||
/// </summary>
|
||||
public const string DailyBestSellProductPrefix = "Product.DailyBestSell.";
|
||||
|
||||
/// <summary>
|
||||
/// 客服
|
||||
/// </summary>
|
||||
public const string CustomerServicePrefix = "CustomerService.";
|
||||
|
||||
/// <summary>
|
||||
/// 用户信息
|
||||
/// </summary>
|
||||
public const string UserPrefix = "User.";
|
||||
|
||||
/// <summary>
|
||||
/// 代理信息
|
||||
/// </summary>
|
||||
public const string AgencyPrefix = "Agency.";
|
||||
|
||||
/// <summary>
|
||||
/// 店铺等级
|
||||
/// </summary>
|
||||
public const string StoreLevel = "StoreLevel";
|
||||
|
||||
/// <summary>
|
||||
/// 用户本地化
|
||||
/// </summary>
|
||||
public const string LocalizationPrefix = "Localization.";
|
||||
|
||||
/// <summary>
|
||||
/// 本地化文本资源缓存
|
||||
/// </summary>
|
||||
public const string LocaleResourcePrefix = "LocaleResource.";
|
||||
}
|
||||
}
|
||||
67
Atomx.Common/Constant/Permissions.cs
Normal file
67
Atomx.Common/Constant/Permissions.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
namespace Atomx.Common.Constant
|
||||
{
|
||||
public static class Permissions
|
||||
{
|
||||
public static class Role
|
||||
{
|
||||
public const string View = "Role.View";
|
||||
public const string Create = "Role.Create";
|
||||
public const string Edit = "Role.Edit";
|
||||
public const string Delete = "Role.Delete";
|
||||
public const string Export = "Role.Export";
|
||||
}
|
||||
|
||||
public static class User
|
||||
{
|
||||
public const string View = "User.View";
|
||||
public const string Create = "User.Create";
|
||||
public const string Edit = "User.Edit";
|
||||
public const string Delete = "User.Delete";
|
||||
public const string Export = "User.Export";
|
||||
}
|
||||
|
||||
public static class Admin
|
||||
{
|
||||
public const string View = "Admin.View";
|
||||
public const string Create = "Admin.Create";
|
||||
public const string Edit = "Admin.Edit";
|
||||
public const string Delete = "Admin.Delete";
|
||||
public const string Export = "Admin.Export";
|
||||
}
|
||||
|
||||
private static readonly Dictionary<string, string> PermissionDescriptions = new()
|
||||
{
|
||||
{ "User", "用户管理" },
|
||||
{ "User.View", "查看用户列表和详情" },
|
||||
{ "User.Create", "创建新用户" },
|
||||
{ "User.Edit", "编辑用户信息" },
|
||||
{ "User.Delete", "删除用户" },
|
||||
{ "User.Export", "导出用户数据" },
|
||||
|
||||
{ "Role", "角色管理" },
|
||||
{ "Role.View", "查看角色列表和详情" },
|
||||
{ "Role.Create", "创建新角色" },
|
||||
{ "Role.Edit", "编辑角色信息" },
|
||||
{ "Role.Delete", "删除角色" },
|
||||
{ "Role.Export", "导出角色数据" },
|
||||
|
||||
{ "System", "系统管理" },
|
||||
{ "Content", "内容管理" },
|
||||
{ "Reports", "报表管理" }
|
||||
};
|
||||
|
||||
public static List<string> GetAllPermissions()
|
||||
{
|
||||
return typeof(Permissions)
|
||||
.GetNestedTypes().SelectMany(t => t.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy))
|
||||
.Where(fi => fi.IsLiteral && !fi.IsInitOnly && fi.FieldType == typeof(string))
|
||||
.Select(fi => (string)fi.GetValue(null)!)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public static string GetPermissionDescription(string permission)
|
||||
{
|
||||
return PermissionDescriptions.ContainsKey(permission) ? PermissionDescriptions[permission] : permission;
|
||||
}
|
||||
}
|
||||
}
|
||||
149
Atomx.Common/Entities/Address.cs
Normal file
149
Atomx.Common/Entities/Address.cs
Normal file
@@ -0,0 +1,149 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户收货地址信息
|
||||
/// </summary>
|
||||
[Table("Addresses")]
|
||||
public class Address
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 添加地址用户
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收件人姓名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 电话号码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string Phone { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 公司
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Company { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 国家ID
|
||||
/// </summary>
|
||||
public long CountryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国家
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Country { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 省份
|
||||
/// </summary>
|
||||
public long ProvinceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 省、州
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Province { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 城市
|
||||
/// </summary>
|
||||
public long CityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 城市
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string City { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 地区
|
||||
/// </summary>
|
||||
public long RegionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地区街
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Region { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮政编码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(15)")]
|
||||
public string PostalCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 详细地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string AddressDetails { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 完整地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(1024)")]
|
||||
public string FullAddress { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 地址所在经度
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(10,6)")]
|
||||
public decimal Longitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址所在纬度
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(10,6)")]
|
||||
public decimal Latitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是虚拟地址
|
||||
/// </summary>
|
||||
public bool IsVirtual { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址使用次数
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否删除
|
||||
/// </summary>
|
||||
public bool IsDelete { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建立时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
94
Atomx.Common/Entities/Admin.cs
Normal file
94
Atomx.Common/Entities/Admin.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统管理员表
|
||||
/// </summary>
|
||||
[Table("Admins")]
|
||||
public class Admin
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Username { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Mobile { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Avatar { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID
|
||||
/// </summary>
|
||||
public int RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时区校对
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(4)")]
|
||||
public string TimeOffset { get; set; } = "0";
|
||||
|
||||
/// <summary>
|
||||
/// 账号数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录次数
|
||||
/// </summary>
|
||||
public int LoginCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? LastLogin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string LastIp { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
99
Atomx.Common/Entities/AppVersion.cs
Normal file
99
Atomx.Common/Entities/AppVersion.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用版本
|
||||
/// </summary>
|
||||
[Table("AppVersions")]
|
||||
public class AppVersion
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属站点应用ID
|
||||
/// </summary>
|
||||
public long SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运行平台
|
||||
/// </summary>
|
||||
public int Platform { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 应用名称KEY
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string AppName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 版本标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 版本
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Version { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 主版本号(major)无法向下兼容时,需要递增
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public int VersionX { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 次版本号(minor)新增新的特性时,需要递增
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public int VersionY { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修订版本号(patch)修复问题时,需要递增
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public int VersionZ { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 版本日期
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public int VersionDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 版本状态 例如:b 表示bate版,即测试版
|
||||
/// </summary>
|
||||
public int VersionState { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新内容说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Content { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 版本状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
69
Atomx.Common/Entities/Area.cs
Normal file
69
Atomx.Common/Entities/Area.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 地区(国家、省、市、区)
|
||||
/// </summary>
|
||||
public class Area
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级ID
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地区名称
|
||||
/// </summary>
|
||||
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 首字母
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(1)")]
|
||||
public string Initial { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 双字母代码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(2)")]
|
||||
public string TwoLetterISOCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 三字母代码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(3)")]
|
||||
public string ThreeLetterISOCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数字代码
|
||||
/// </summary>
|
||||
public int NumericISOCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许配送
|
||||
/// </summary>
|
||||
public bool AllowShipping { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
119
Atomx.Common/Entities/Category.cs
Normal file
119
Atomx.Common/Entities/Category.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类
|
||||
/// </summary>
|
||||
public class Category
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属站点应用ID
|
||||
/// </summary>
|
||||
public long SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类类型,1内容,2产品,3社区
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级分类ID
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(25)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分类URL缩略名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Slug { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta描述介绍
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string MetaDescription { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta关键词
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string MetaKeywords { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 过滤属性IDs
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string FilterAttributes { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分类图片
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Image { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分类页 banner
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Banner { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 只是一个节点
|
||||
/// </summary>
|
||||
public bool IsNode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级深度
|
||||
/// </summary>
|
||||
public int Depth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级路径
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Path { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 统计量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
84
Atomx.Common/Entities/Comment.cs
Normal file
84
Atomx.Common/Entities/Comment.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 评论
|
||||
/// </summary>
|
||||
[Table("Comments")]
|
||||
public class Comment
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属站点应用ID
|
||||
/// </summary>
|
||||
public long SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发布评论用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 内容ID
|
||||
/// </summary>
|
||||
public long PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级评论ID,0表示根评论
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 引用评论ID,0表示不引用
|
||||
/// </summary>
|
||||
public long QuoteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Content { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 支持的点赞数
|
||||
/// </summary>
|
||||
public int LikeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 回复的评论数
|
||||
/// </summary>
|
||||
public int Replies { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论IP
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Ip { get ; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 评论状态,0-待审核,1-已发布,2-垃圾评论,3-回收站
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
64
Atomx.Common/Entities/Corporation.cs
Normal file
64
Atomx.Common/Entities/Corporation.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 公司信息
|
||||
/// </summary>
|
||||
[Table("Corporations")]
|
||||
public class Corporation
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 店铺网点数量
|
||||
/// </summary>
|
||||
public int StoreCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品数量
|
||||
/// </summary>
|
||||
public int ProductCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品数量
|
||||
/// </summary>
|
||||
public int GoodsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据删除时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? DeleteTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
35
Atomx.Common/Entities/CorporationManufacturerRelation.cs
Normal file
35
Atomx.Common/Entities/CorporationManufacturerRelation.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 企业供应商关系
|
||||
/// </summary>
|
||||
[Table("CorporationManufacturerRelations")]
|
||||
public class CorporationManufacturerRelation
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性关联数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 企业ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应制造商ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
96
Atomx.Common/Entities/CorporationStaff.cs
Normal file
96
Atomx.Common/Entities/CorporationStaff.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
[Table("CorporationStaffs")]
|
||||
public class CorporationStaff
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Username { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Mobile { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Avatar { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID
|
||||
/// </summary>
|
||||
public int RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时区校对
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(4)")]
|
||||
public string TimeOffset { get; set; } = "0";
|
||||
|
||||
/// <summary>
|
||||
/// 账号数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录次数
|
||||
/// </summary>
|
||||
public int LoginCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? LastLogin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string LastIp { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
43
Atomx.Common/Entities/CorporationUserRelation.cs
Normal file
43
Atomx.Common/Entities/CorporationUserRelation.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户公司关系
|
||||
/// </summary>
|
||||
[Table("CorporationUserRelations")]
|
||||
public class CorporationUserRelation
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
94
Atomx.Common/Entities/Currency.cs
Normal file
94
Atomx.Common/Entities/Currency.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 货币信息
|
||||
/// </summary>
|
||||
public class Currency
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 货币名称,系统
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 货币标题,识别
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 货币单位代码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(10)")]
|
||||
public string CurrencyCode { get; set; }= string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 本地显示
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(15)")]
|
||||
public string DisplayLocale { get; set;} = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 货币符号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(8)")]
|
||||
public string Symbolic { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数字自定义格式化
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string CustomFormatting { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 兑换汇率
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(16, 4)")]
|
||||
public decimal Rate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否显示
|
||||
/// </summary>
|
||||
public bool EnableDisplay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 启用支付
|
||||
/// </summary>
|
||||
public bool EnablePay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 建立时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
73
Atomx.Common/Entities/CurrencyChannelRelation.cs
Normal file
73
Atomx.Common/Entities/CurrencyChannelRelation.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 货币与支付通道关联表
|
||||
/// </summary>
|
||||
public class CurrencyChannelRelation
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 货币支付通道标题
|
||||
/// </summary>
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 货币ID
|
||||
/// </summary>
|
||||
public int CurrencyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付通道ID
|
||||
/// </summary>
|
||||
public int PayChannelId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 每天可用开始时间
|
||||
/// </summary>
|
||||
public int StartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 每天可用暂停时间
|
||||
/// </summary>
|
||||
public int EndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 每天可用时间的时区
|
||||
/// </summary>
|
||||
public int TimeZone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 通道费率
|
||||
/// </summary>
|
||||
public decimal Rate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扩展信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Extended { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 通道状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建立时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
71
Atomx.Common/Entities/Language.cs
Normal file
71
Atomx.Common/Entities/Language.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 语言
|
||||
/// </summary>
|
||||
[Table("Languages")]
|
||||
public class Language
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 语言标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 语言名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(25)")]
|
||||
public string Culture { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 国旗
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string FlagImage { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用,系统面
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 多语言资源的版本,可以是时间戳或哈希
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(25)")]
|
||||
public string ResourceVersion { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
42
Atomx.Common/Entities/LocaleResource.cs
Normal file
42
Atomx.Common/Entities/LocaleResource.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 本地化多语言资源,用于系统文本多语言
|
||||
/// </summary>
|
||||
[Table("LocaleResources")]
|
||||
public class LocaleResource
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言编码
|
||||
/// </summary>
|
||||
public int LanguageId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 资源名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 资源内容值
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(1000)")]
|
||||
public string Value { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
46
Atomx.Common/Entities/LocalizedProperty.cs
Normal file
46
Atomx.Common/Entities/LocalizedProperty.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据本地化属性值,适用于数据多语言
|
||||
/// </summary>
|
||||
[Table("LocalizedProperties")]
|
||||
public class LocalizedProperty
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言编码
|
||||
/// </summary>
|
||||
public int LanguageNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据实体ID
|
||||
/// </summary>
|
||||
public long EntityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据KEY
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据值
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Value { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
88
Atomx.Common/Entities/Manufacturer.cs
Normal file
88
Atomx.Common/Entities/Manufacturer.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 制造商供应商数据
|
||||
/// </summary>
|
||||
[Table("Manufacturers")]
|
||||
public class Manufacturer
|
||||
{
|
||||
/// <summary>
|
||||
/// 制造商ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 制造商名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否是供应商
|
||||
/// </summary>
|
||||
public bool IsVendor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 品牌LOGO
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(300)")]
|
||||
public string Logo { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 品牌制造商描述
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(512)")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string MetaTitle { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string MetaKeywords { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Meta标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(512)")]
|
||||
public string MetaDescription { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 品牌产品数量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建立时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
43
Atomx.Common/Entities/ManufacturerProductRelation.cs
Normal file
43
Atomx.Common/Entities/ManufacturerProductRelation.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 制造商产品关系
|
||||
/// </summary>
|
||||
[Table("ManufacturerProductRelations")]
|
||||
public class ManufacturerProductRelation
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应制造商ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预设默认制造加工费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal ProcessingFee { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预设默认附加工费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal AdditionalFee { get; set; }
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
45
Atomx.Common/Entities/Material.cs
Normal file
45
Atomx.Common/Entities/Material.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料原料类型数据
|
||||
/// </summary>
|
||||
[Table("Materials")]
|
||||
public class Material
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料归属店铺网点ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料数量
|
||||
/// </summary>
|
||||
public decimal Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
66
Atomx.Common/Entities/MaterialBatch.cs
Normal file
66
Atomx.Common/Entities/MaterialBatch.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 原料采购批次
|
||||
/// </summary>
|
||||
[Table("MaterialBatchs")]
|
||||
public class MaterialBatch
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型:采购、借调、借调归还
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料数据ID
|
||||
/// </summary>
|
||||
public long MaterialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料归属店铺网点ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料当前数量
|
||||
/// </summary>
|
||||
public decimal Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料批次总量
|
||||
/// </summary>
|
||||
public decimal TotalQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料采购价格
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
81
Atomx.Common/Entities/MaterialRecord.cs
Normal file
81
Atomx.Common/Entities/MaterialRecord.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 原料详细记录,采购入库、使用出库、借调、归还、盘点校对
|
||||
/// </summary>
|
||||
[Table("MaterialRecords")]
|
||||
public class MaterialRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作类型,采购入库、使用出库、借调出库、归还入库、盘点校对
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料Id
|
||||
/// </summary>
|
||||
public long MaterialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属原料批次ID
|
||||
/// </summary>
|
||||
public long MaterialBatchId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司id
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据店铺网点id
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 原料价格
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public decimal Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用原料产生的费用
|
||||
/// </summary>
|
||||
public decimal Expenses { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标记
|
||||
/// </summary>
|
||||
public int Mark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Note { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 注册数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
98
Atomx.Common/Entities/Menu.cs
Normal file
98
Atomx.Common/Entities/Menu.cs
Normal file
@@ -0,0 +1,98 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单数据,可用于后台菜单和其他菜单,通过Type约定
|
||||
/// </summary>
|
||||
[Table("Menus")]
|
||||
public class Menu
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类类型,1-管理后台系统
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级分类ID
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分类图标
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Icon { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 菜单分组,针对折叠菜单效果
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 菜单链接的URL
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Url { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限代码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Code { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否外链接
|
||||
/// </summary>
|
||||
public bool IsLink { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级深度
|
||||
/// </summary>
|
||||
public int Depth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层级路径
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Path { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
65
Atomx.Common/Entities/MessageTemplate.cs
Normal file
65
Atomx.Common/Entities/MessageTemplate.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统消息模版
|
||||
/// </summary>
|
||||
[Table("MessageTemplates")]
|
||||
public class MessageTemplate
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 消息模板类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 信息模板KEY
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 消息模板名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 消息标题
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 消息内容
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Body { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
363
Atomx.Common/Entities/Order.cs
Normal file
363
Atomx.Common/Entities/Order.cs
Normal file
@@ -0,0 +1,363 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单
|
||||
/// </summary>
|
||||
[Table("Orders")]
|
||||
public class Order
|
||||
{
|
||||
// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单号
|
||||
/// </summary>
|
||||
public long OrderNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 平台ID,1自有商城,2淘宝,3天猫,4京东,5拼多多,6抖音,7快手,8小红书等
|
||||
/// </summary>
|
||||
public int PlatformId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 平台订单号
|
||||
/// </summary>
|
||||
public long PlatformOrderNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否虚拟数据
|
||||
/// </summary>
|
||||
public bool IsVirtual { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单商品供应商ID
|
||||
/// </summary>
|
||||
public long VendorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成交店铺ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售人员Id
|
||||
/// </summary>
|
||||
public long SalespersonId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下单用户
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收件人姓名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮件地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 电话号码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string Phone { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 公司
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Company { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 国家ID
|
||||
/// </summary>
|
||||
public long CountryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 国家
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Country { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 省份
|
||||
/// </summary>
|
||||
public long ProvinceId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 省、州
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Province { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 城市
|
||||
/// </summary>
|
||||
public long CityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 城市
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string City { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 地区
|
||||
/// </summary>
|
||||
public long RegionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地区街
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string Region { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮政编码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(15)")]
|
||||
public string PostalCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 详细地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string AddressDetails { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 完整地址
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(1024)")]
|
||||
public string FullAddress { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 地址所在经度
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(10,6)")]
|
||||
public decimal Longitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址所在纬度
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(10,6)")]
|
||||
public decimal Latitude { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单原市场总价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
|
||||
public decimal TotalMarketPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品销售总价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
|
||||
public decimal TotalPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 折扣总额
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal DiscountAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单总价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal OrderPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单个数
|
||||
/// </summary>
|
||||
public int ProductCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 购买产品总数量
|
||||
/// </summary>
|
||||
public int TotalQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 税费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(8,4)")]
|
||||
public decimal Taxes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal ShippingCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单使用的优惠券ID
|
||||
/// </summary>
|
||||
public long CouponId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 客户支付单ID
|
||||
/// </summary>
|
||||
public long OrderPaymentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 付款方式,支付通道
|
||||
/// </summary>
|
||||
public int PaymentChannel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单实付总额
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal PaymentAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付状态
|
||||
/// </summary>
|
||||
public int PaymentStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 付款时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? PaymentTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家利润
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal StoreProfit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家店铺是否提货
|
||||
/// </summary>
|
||||
public bool StorePickedUp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖点店铺提货时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? StorePickedUpTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家回款时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? StorePaybackTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家订单利润结算时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? StoreProfitSettlementTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商是否确认订单
|
||||
/// </summary>
|
||||
public bool IsConfirmed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商订单确认时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? ConfirmedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已评论
|
||||
/// </summary>
|
||||
public bool Reviewed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扩展信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Extended { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 订单状态,(待付款,待发货,待签收,待结算,订单取消,订单过期,支付失败)
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string? Remark { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 卖家下单备注信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string? Message { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 物流快递公司编号
|
||||
/// </summary>
|
||||
public long ExpressId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 快递公司
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(25)")]
|
||||
public string ExpressName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 快递单号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(30)")]
|
||||
public string WaybillNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 发货状态
|
||||
/// </summary>
|
||||
public int DeliveryStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发货时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime? DeliveryTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 包裹签收时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime? SigningTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下单时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
186
Atomx.Common/Entities/OrderItem.cs
Normal file
186
Atomx.Common/Entities/OrderItem.cs
Normal file
@@ -0,0 +1,186 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单详情数据
|
||||
/// </summary>
|
||||
[Table("OrderItems")]
|
||||
public class OrderItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 订单商品明细ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单ID
|
||||
/// </summary>
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 平台ID,1自有商城,2淘宝,3天猫,4京东,5拼多多,6抖音,7快手,8小红书等
|
||||
/// </summary>
|
||||
public int PlatformId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下单购买用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
/// </summary>
|
||||
public long WarehouseId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商城产品信息ID
|
||||
/// </summary>
|
||||
public long ProductListingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售产品的店铺ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU ID,0则表示无SKU ID
|
||||
/// </summary>
|
||||
public long SkuId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应商ID
|
||||
/// </summary>
|
||||
public long VendorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 品牌ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 商品封面图
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string Image { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 购买数量
|
||||
/// </summary>
|
||||
public int Quantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许退货
|
||||
/// </summary>
|
||||
public bool AllowReturn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许换货
|
||||
/// </summary>
|
||||
public bool AllowExchange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU数据 JSON信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string AttributesJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品SKU编码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string SkuNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 运费模板ID,0表示全国免费包邮
|
||||
/// </summary>
|
||||
public long ShippingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发货省份
|
||||
/// </summary>
|
||||
public long ProvinceId { get; set; }
|
||||
/// <summary>
|
||||
/// 发货城市
|
||||
/// </summary>
|
||||
|
||||
public long CityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 市场价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal MarketPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成本价单价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal? ProductCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分摊优惠金额单价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal DiscountAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家利润
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(8,4)")]
|
||||
public decimal StoreProfit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 售后状态
|
||||
/// </summary>
|
||||
public int AfterSalesStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 售后退款金额
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal RefundAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已晒单
|
||||
/// </summary>
|
||||
public bool Reviewed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品留言
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string? Message { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
54
Atomx.Common/Entities/OrderLog.cs
Normal file
54
Atomx.Common/Entities/OrderLog.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
[Table("OrderLogs")]
|
||||
public class OrderLog
|
||||
{
|
||||
/// <summary>
|
||||
/// 日志数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单ID
|
||||
/// </summary>
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产生动作的用户ID
|
||||
/// </summary>
|
||||
public long? Operator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日志类型
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单状态
|
||||
/// </summary>
|
||||
public int OrderStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(300)")]
|
||||
public string Remark { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 操作IP
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Ip { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
78
Atomx.Common/Entities/PaymentChannel.cs
Normal file
78
Atomx.Common/Entities/PaymentChannel.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
public class PaymentChannel
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 付款方式,银行、微信、支付宝,USDT
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付网络,区块链-TRC20,Online-Wechat,Bank-ICBC
|
||||
/// </summary>
|
||||
public int Network { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支付渠道名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 支付渠道标题名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string Title { get; set; }=string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 描述说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(512)")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 收款账号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Account { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 支付通道的设置
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Config { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
34
Atomx.Common/Entities/Permission.cs
Normal file
34
Atomx.Common/Entities/Permission.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
[Table("Permissions")]
|
||||
public class Permission
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限名称 例如: "User.Read"
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限点说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限分类
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string Category { get; set; } = string.Empty; // 权限分类
|
||||
}
|
||||
}
|
||||
60
Atomx.Common/Entities/Picture.cs
Normal file
60
Atomx.Common/Entities/Picture.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 图片
|
||||
/// </summary>
|
||||
[Table("Pictures")]
|
||||
public class Picture
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片类别
|
||||
/// </summary>
|
||||
public int Type { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 上传文件名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件大小
|
||||
/// </summary>
|
||||
public int FileSize { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 文件存放位置
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(250)")]
|
||||
public string Path { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件访问域名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(250)")]
|
||||
public string Domain { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件hash
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string SHA256Hash { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
}
|
||||
}
|
||||
12
Atomx.Common/Entities/Post.cs
Normal file
12
Atomx.Common/Entities/Post.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
public class Post
|
||||
{
|
||||
}
|
||||
}
|
||||
72
Atomx.Common/Entities/PriceTrend.cs
Normal file
72
Atomx.Common/Entities/PriceTrend.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 价格走势
|
||||
/// </summary>
|
||||
[Table("PriceTrends")]
|
||||
public class PriceTrend
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日期
|
||||
/// </summary>
|
||||
public int Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前价格
|
||||
/// </summary>
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最低价格
|
||||
/// </summary>
|
||||
public decimal LowestPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最高价格
|
||||
/// </summary>
|
||||
public decimal HighestPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前零售价格
|
||||
/// </summary>
|
||||
public decimal RetailPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最低零售价格
|
||||
/// </summary>
|
||||
public decimal LowestRetailPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最高零售价格
|
||||
/// </summary>
|
||||
public decimal HighestRetailPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
201
Atomx.Common/Entities/Product.cs
Normal file
201
Atomx.Common/Entities/Product.cs
Normal file
@@ -0,0 +1,201 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Table("Products")]
|
||||
public class Product
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发布的企业用户ID
|
||||
/// </summary>
|
||||
|
||||
public long CorporationStaffId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家店铺ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品类型ID
|
||||
/// </summary>
|
||||
public long ProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类路径
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(200)")]
|
||||
public string? CategoryPath { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
public long CategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 制造商ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Title { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品唯一编码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string? SIN { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 封面图片
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string? Image { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品图片,JSON
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string? Photos { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品卖点
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string? Feature { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品简介
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string? Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 规格信息Json
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string? SpecificationJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 重量
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(6,2)")]
|
||||
public decimal? Weight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最小重量(有SKU的时候生效)
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(6,2)")]
|
||||
public decimal? MinWeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最大重量(有SKU的时候生效)
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(6,2)")]
|
||||
public decimal? MaxWeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 市场价,划线价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal MarketPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售标价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU组合的产品价格信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string? SkuPrices { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 商品扩展信息
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Extended { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品信息审核状态
|
||||
/// </summary>
|
||||
public int ReviewStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存管理模式,0不跟踪库存,1以产品跟踪库存,2以SKU跟踪库存
|
||||
/// </summary>
|
||||
public int InventoryMethod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品库存
|
||||
/// </summary>
|
||||
public int StockQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总销售数量
|
||||
/// </summary>
|
||||
public int SalesQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片数量
|
||||
/// </summary>
|
||||
public int PictureCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品状态,0未上架,1上架
|
||||
/// </summary>
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否逻辑删除
|
||||
/// </summary>
|
||||
public bool Deleted { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime? DeletedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
84
Atomx.Common/Entities/ProductAttribute.cs
Normal file
84
Atomx.Common/Entities/ProductAttribute.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品属性
|
||||
/// </summary>
|
||||
[Table("ProductAttributes")]
|
||||
public class ProductAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 属性ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
public long CategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级属性,用于规格属性做分组
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 必须填写重量
|
||||
/// </summary>
|
||||
public bool WeightIsRequired { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 重量单位,1毫克mg,2克g,3千克kg,4吨t,5磅lb,6盎司oz
|
||||
/// </summary>
|
||||
public int WeightUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性控件类型,1选项,0文本
|
||||
/// </summary>
|
||||
public int ControlType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用属性的产品数量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是必须的属性
|
||||
/// </summary>
|
||||
public bool IsRequired { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
127
Atomx.Common/Entities/ProductAttributeCombination.cs
Normal file
127
Atomx.Common/Entities/ProductAttributeCombination.cs
Normal file
@@ -0,0 +1,127 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性组合商品数据
|
||||
/// </summary>
|
||||
[Table("ProductAttributeCombinations")]
|
||||
public class ProductAttributeCombination
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应制造商ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性JSON
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string AttributesJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
public int StockQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售数量
|
||||
/// </summary>
|
||||
public int SalesQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU编码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(20)")]
|
||||
public string SkuNumber { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 重量
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Weight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重量单位,1克,2千克,3磅,4盎司
|
||||
/// </summary>
|
||||
public int WeightUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售加工费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal ProcessCharge { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 加工费成本
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal ProcessCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 销售附加费
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Surcharge { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 附加费成本
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal SurchargeCost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU的市场价,划线价
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
|
||||
public decimal MarketPrice { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SKU的销售价格
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
|
||||
public decimal Price { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标记
|
||||
/// </summary>
|
||||
public int Mark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Note { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否禁用停售
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
64
Atomx.Common/Entities/ProductAttributeOption.cs
Normal file
64
Atomx.Common/Entities/ProductAttributeOption.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性选项
|
||||
/// </summary>
|
||||
[Table("ProductAttributeOptions")]
|
||||
public class ProductAttributeOption
|
||||
{
|
||||
/// <summary>
|
||||
/// 预设值ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性ID
|
||||
/// </summary>
|
||||
public long AttributeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预设值名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Value { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 属性值使用量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否通用的
|
||||
/// </summary>
|
||||
public bool Standard { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
39
Atomx.Common/Entities/ProductAttributeRelation.cs
Normal file
39
Atomx.Common/Entities/ProductAttributeRelation.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性关系表
|
||||
/// </summary>
|
||||
[Table("ProductAttributeRelations")]
|
||||
public class ProductAttributeRelation
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性关联数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性ID
|
||||
/// </summary>
|
||||
public long AttributeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性
|
||||
/// </summary>
|
||||
public bool Image { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
}
|
||||
}
|
||||
67
Atomx.Common/Entities/ProductAttributeValue.cs
Normal file
67
Atomx.Common/Entities/ProductAttributeValue.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品属性值表
|
||||
/// </summary>
|
||||
[Table("ProductAttributeValues")]
|
||||
public class ProductAttributeValue
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预设值ID
|
||||
/// </summary>
|
||||
public long OptionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性关系数据ID
|
||||
/// </summary>
|
||||
public long ProductAttributeRelationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性值名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 属性图片
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Image { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 重量
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Weight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重量单位,1克,2千克,3磅,4盎司
|
||||
/// </summary>
|
||||
public int WeightUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是加重的
|
||||
/// </summary>
|
||||
public bool IsAddWeight { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
}
|
||||
}
|
||||
66
Atomx.Common/Entities/ProductChangeLog.cs
Normal file
66
Atomx.Common/Entities/ProductChangeLog.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品变更日志
|
||||
/// </summary>
|
||||
[Table("ProductChangeLogs")]
|
||||
public class ProductChangeLog
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 变更类型,新增,编辑,删除,恢复
|
||||
/// </summary>
|
||||
public int ChangeType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作用户ID
|
||||
/// </summary>
|
||||
public long? Operator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作账号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Username { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 日志操作方
|
||||
/// </summary>
|
||||
public int OperatorParty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作摘要
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(256)")]
|
||||
public string Summary { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 操作内容
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Details { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
}
|
||||
}
|
||||
56
Atomx.Common/Entities/ProductInventory.cs
Normal file
56
Atomx.Common/Entities/ProductInventory.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品仓库库存表
|
||||
/// </summary>
|
||||
[Table("ProductInventories")]
|
||||
public class ProductInventory
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性组合ID
|
||||
/// </summary>
|
||||
public long ProductAttributeCombinationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
/// </summary>
|
||||
public long WarehouseId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
public int StockQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
97
Atomx.Common/Entities/ProductInventoryLog.cs
Normal file
97
Atomx.Common/Entities/ProductInventoryLog.cs
Normal file
@@ -0,0 +1,97 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品库存记录
|
||||
/// </summary>
|
||||
[Table("ProductInventoryLogs")]
|
||||
public class ProductInventoryLog
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产生动作的用户ID
|
||||
/// </summary>
|
||||
public long? Operator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型,0入库,1出库,初始
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属买家店铺或货仓
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 供应制造商ID
|
||||
/// </summary>
|
||||
public long ManufacturerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库ID
|
||||
/// </summary>
|
||||
public long WarehouseId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性组合ID
|
||||
/// </summary>
|
||||
public long ProductAttributeCombinationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单ID
|
||||
/// </summary>
|
||||
public long OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作数量
|
||||
/// </summary>
|
||||
public int ChangeAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 重量
|
||||
/// </summary>
|
||||
[Column(TypeName = "decimal(18,4)")]
|
||||
public decimal Weight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作之前库存
|
||||
/// </summary>
|
||||
public int BeforeStock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作之后库存
|
||||
/// </summary>
|
||||
public int AfterStock { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Note { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
}
|
||||
}
|
||||
224
Atomx.Common/Entities/ProductListing.cs
Normal file
224
Atomx.Common/Entities/ProductListing.cs
Normal file
@@ -0,0 +1,224 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 自有商城或平台网点的商品列表。
|
||||
/// </summary>
|
||||
[Table("ProductListings")]
|
||||
public class ProductListing
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 基础产品信息
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发布的企业用户ID
|
||||
/// </summary>
|
||||
|
||||
public long CorporationStaffId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 平台ID,1自有商城,2淘宝,3天猫,4京东,5拼多多,6抖音,7快手,8小红书等
|
||||
/// </summary>
|
||||
public int PlatformId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 卖家店铺ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品类型ID
|
||||
/// </summary>
|
||||
public long ProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SEO Title
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string MetaTitle { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// SEO Description
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(512)")]
|
||||
public string MetaDescription { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品Slug
|
||||
/// </summary>
|
||||
public string Slug { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品特点标签
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(100)")]
|
||||
public string? Tags { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 产品详细介绍
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Body { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 订单最小数量
|
||||
/// </summary>
|
||||
public int OrderMinimumQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单最多数量
|
||||
/// </summary>
|
||||
public int OrderMaximumQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许退货
|
||||
/// </summary>
|
||||
public bool AllowReturn { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许换货
|
||||
/// </summary>
|
||||
|
||||
public bool AllowExchange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否独立发货
|
||||
/// </summary>
|
||||
|
||||
public bool SingleShip { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预计运输天数
|
||||
/// </summary>
|
||||
public int ShippingDays { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 运费模板ID
|
||||
/// </summary>
|
||||
|
||||
public long ShippingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 精选
|
||||
/// </summary>
|
||||
public bool IsFeatured { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否 best
|
||||
/// </summary>
|
||||
public bool IsBest { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否标注新品
|
||||
/// </summary>
|
||||
public bool IsNew { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 暂停销售,前台处理成已售罄
|
||||
/// </summary>
|
||||
public bool StopSales { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品信息审核状态
|
||||
/// </summary>
|
||||
public int ReviewStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 商品库存
|
||||
/// </summary>
|
||||
public int StockQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总销售数量
|
||||
/// </summary>
|
||||
public int SalesQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评分
|
||||
/// </summary>
|
||||
public double Ratings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 5颗星
|
||||
/// </summary>
|
||||
public int FiveStars { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 4课星
|
||||
/// </summary>
|
||||
public int FourStars { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 三颗星
|
||||
/// </summary>
|
||||
public int ThreeStars { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 两颗星
|
||||
/// </summary>
|
||||
public int TwoStars { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 一颗星
|
||||
/// </summary>
|
||||
public int OneStars { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论数量
|
||||
/// </summary>
|
||||
public int ReviewsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总浏览次数
|
||||
/// </summary>
|
||||
public int ViewsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品状态,0未上架,1上架
|
||||
/// </summary>
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否逻辑删除
|
||||
/// </summary>
|
||||
public bool Deleted { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 删除时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime? DeletedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
42
Atomx.Common/Entities/ProductPicture.cs
Normal file
42
Atomx.Common/Entities/ProductPicture.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
[Table("ProductPictures")]
|
||||
public class ProductPicture
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片类型,封面,SKU
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性组合ID
|
||||
/// </summary>
|
||||
public long ProductAttributeCombination { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片ID
|
||||
/// </summary>
|
||||
public long FileId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 显示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
}
|
||||
}
|
||||
68
Atomx.Common/Entities/Role.cs
Normal file
68
Atomx.Common/Entities/Role.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色
|
||||
/// </summary>
|
||||
[Table("Roles")]
|
||||
public class Role
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色名称
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 权限
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Permission { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否系统角色
|
||||
/// </summary>
|
||||
public bool IsSystemRole { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色用户数量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
47
Atomx.Common/Entities/Setting.cs
Normal file
47
Atomx.Common/Entities/Setting.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统设置配置
|
||||
/// </summary>
|
||||
[Table("Settings")]
|
||||
public class Setting
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属的网站应用Id
|
||||
/// </summary>
|
||||
public long SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统设置KEY
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 配置类型,0 系统设置,
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 系统设置项
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string Content { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
47
Atomx.Common/Entities/SiteApp.cs
Normal file
47
Atomx.Common/Entities/SiteApp.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 站点应用
|
||||
/// </summary>
|
||||
public class SiteApp
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 网站应用类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 网站应用名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建立时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
69
Atomx.Common/Entities/SpecificationAttribute.cs
Normal file
69
Atomx.Common/Entities/SpecificationAttribute.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 规格属性
|
||||
/// </summary>
|
||||
[Table("SpecificationAttributes")]
|
||||
public class SpecificationAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 属性ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类ID
|
||||
/// </summary>
|
||||
public long CategoryId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级属性,用于规格属性做分组
|
||||
/// </summary>
|
||||
public long ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 属性名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 属性控件类型,1选项,2文本
|
||||
/// </summary>
|
||||
public int ControlType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 使用属性的产品数量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
59
Atomx.Common/Entities/SpecificationAttributeOption.cs
Normal file
59
Atomx.Common/Entities/SpecificationAttributeOption.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 规格属性选项
|
||||
/// </summary>
|
||||
[Table("SpecificationAttributeOptions")]
|
||||
public class SpecificationAttributeOption
|
||||
{
|
||||
/// <summary>
|
||||
/// 预设值ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品属性ID
|
||||
/// </summary>
|
||||
public long SpecificationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预设值名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(50)")]
|
||||
public string Value { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 属性值使用量
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 展示排序
|
||||
/// </summary>
|
||||
public int DisplayOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
59
Atomx.Common/Entities/Store.cs
Normal file
59
Atomx.Common/Entities/Store.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 店铺
|
||||
/// </summary>
|
||||
[Table("Stores")]
|
||||
public class Store
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 上级ID,用于团队内部分组
|
||||
/// </summary>
|
||||
public int ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 店铺类型,网店,实体店,档口,直播间
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public required string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据删除时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? DeleteTime { get; set; }
|
||||
}
|
||||
}
|
||||
47
Atomx.Common/Entities/StoreProductItem.cs
Normal file
47
Atomx.Common/Entities/StoreProductItem.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 店铺产品清单
|
||||
/// </summary>
|
||||
[Table("StoreProductItems")]
|
||||
public class StoreProductItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 店铺
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产品ID
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
public int StockQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
84
Atomx.Common/Entities/UploadFile.cs
Normal file
84
Atomx.Common/Entities/UploadFile.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 上传的文件
|
||||
/// </summary>
|
||||
[Table("UploadFiles")]
|
||||
public class UploadFile
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属站点应用ID
|
||||
/// </summary>
|
||||
public long SiteId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 文件类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 文件名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 存放路径
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string Path { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件扩展
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(12)")]
|
||||
public string Extension { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件扩展
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(32)")]
|
||||
public string ContentType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件hash
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(128)")]
|
||||
public string SHA256Hash { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 文件大小,单位:字节
|
||||
/// </summary>
|
||||
public int Size { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建用户ID
|
||||
/// </summary>
|
||||
public long CreateUid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建用户名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(32)")]
|
||||
public string CreateBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
58
Atomx.Common/Entities/User.cs
Normal file
58
Atomx.Common/Entities/User.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户数据
|
||||
/// </summary>
|
||||
[Table("Users")]
|
||||
public class User
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 手机号
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Mobile { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 头像
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(64)")]
|
||||
public string Avatar { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 登录密码
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(32)")]
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 注册数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
51
Atomx.Common/Entities/UserAsset.cs
Normal file
51
Atomx.Common/Entities/UserAsset.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户资产数据表
|
||||
/// </summary>
|
||||
public class UserAsset
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型
|
||||
/// </summary>
|
||||
public int Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 资产名称ID
|
||||
/// </summary>
|
||||
public long CurrencyId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总额
|
||||
/// </summary>
|
||||
public decimal Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 余额
|
||||
/// </summary>
|
||||
public decimal Balance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 冻结数量
|
||||
/// </summary>
|
||||
public decimal FrozenAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
45
Atomx.Common/Entities/UserMeta.cs
Normal file
45
Atomx.Common/Entities/UserMeta.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户资料
|
||||
/// </summary>
|
||||
[Table("UserMetas")]
|
||||
public class UserMeta
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 字段KEY
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string MetaKey { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 存储值
|
||||
/// </summary>
|
||||
[Column(TypeName = "text")]
|
||||
public string MetaValue { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据最后更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
43
Atomx.Common/Entities/UserStoreRelation.cs
Normal file
43
Atomx.Common/Entities/UserStoreRelation.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户店铺关系
|
||||
/// </summary>
|
||||
[Table("UserStoreRelations")]
|
||||
public class UserStoreRelation
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 店铺ID
|
||||
/// </summary>
|
||||
public long StoreId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
|
||||
/// <summary>
|
||||
/// 数据更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
47
Atomx.Common/Entities/Warehouse.cs
Normal file
47
Atomx.Common/Entities/Warehouse.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 仓库数据
|
||||
/// </summary>
|
||||
[Table("Warehouses")]
|
||||
public class Warehouse
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 归属公司ID
|
||||
/// </summary>
|
||||
public long CorporationId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分类名称
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(25)")]
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 是否可用
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
}
|
||||
41
Atomx.Common/Entities/WarehouseStockRecord.cs
Normal file
41
Atomx.Common/Entities/WarehouseStockRecord.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Atomx.Common.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// 出入库记录
|
||||
/// </summary>
|
||||
[Table("WarehouseStockRecords")]
|
||||
public class WarehouseStockRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据ID
|
||||
/// </summary>
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key]
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类型,0入库,1出库,初始
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 产生动作的用户ID
|
||||
/// </summary>
|
||||
public long? Operator { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注说明
|
||||
/// </summary>
|
||||
[Column(TypeName = "varchar(255)")]
|
||||
public string Note { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 注册数据创建时间
|
||||
/// </summary>
|
||||
[Column(TypeName = "timestamptz")]
|
||||
public DateTime CreateTime { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
21
Atomx.Common/Enums/CategoryType.cs
Normal file
21
Atomx.Common/Enums/CategoryType.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 分类类型
|
||||
/// </summary>
|
||||
public enum CategoryType
|
||||
{
|
||||
/// <summary>
|
||||
/// 内容
|
||||
/// </summary>
|
||||
Content,
|
||||
/// <summary>
|
||||
/// 产品
|
||||
/// </summary>
|
||||
Product,
|
||||
}
|
||||
}
|
||||
15
Atomx.Common/Enums/ConfigType.cs
Normal file
15
Atomx.Common/Enums/ConfigType.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
public enum ConfigType
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统设置
|
||||
/// </summary>
|
||||
System = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 产品分类
|
||||
/// </summary>
|
||||
ProductCategory = 10,
|
||||
}
|
||||
}
|
||||
18
Atomx.Common/Enums/DataStatus.cs
Normal file
18
Atomx.Common/Enums/DataStatus.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据状态
|
||||
/// </summary>
|
||||
public enum DataStatus
|
||||
{
|
||||
None = 0,
|
||||
/// <summary>
|
||||
/// 可用
|
||||
/// </summary>
|
||||
Enable = 1,
|
||||
/// <summary>
|
||||
/// 禁用
|
||||
/// </summary>
|
||||
Disable = 2,
|
||||
}
|
||||
}
|
||||
7
Atomx.Common/Enums/LocalizedType.cs
Normal file
7
Atomx.Common/Enums/LocalizedType.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
public enum LocalizedType
|
||||
{
|
||||
None,
|
||||
}
|
||||
}
|
||||
10
Atomx.Common/Enums/MaterialType.cs
Normal file
10
Atomx.Common/Enums/MaterialType.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 原料类型
|
||||
/// </summary>
|
||||
public enum MaterialType
|
||||
{
|
||||
Gold = 1
|
||||
}
|
||||
}
|
||||
18
Atomx.Common/Enums/MenuType.cs
Normal file
18
Atomx.Common/Enums/MenuType.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单数据类型
|
||||
/// </summary>
|
||||
public enum MenuType
|
||||
{
|
||||
/// <summary>
|
||||
/// 未知
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 管理系统
|
||||
/// </summary>
|
||||
AdminSystem = 1
|
||||
}
|
||||
}
|
||||
28
Atomx.Common/Enums/MessageTemplateType.cs
Normal file
28
Atomx.Common/Enums/MessageTemplateType.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 消息通道
|
||||
/// </summary>
|
||||
public enum MessageTemplateType
|
||||
{
|
||||
/// <summary>
|
||||
/// 站内信
|
||||
/// </summary>
|
||||
Message = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 电子邮件
|
||||
/// </summary>
|
||||
Email,
|
||||
|
||||
/// <summary>
|
||||
/// 短信
|
||||
/// </summary>
|
||||
Sms,
|
||||
|
||||
/// <summary>
|
||||
/// 应用推送
|
||||
/// </summary>
|
||||
Push
|
||||
}
|
||||
}
|
||||
13
Atomx.Common/Enums/ProductInventoryChangeType.cs
Normal file
13
Atomx.Common/Enums/ProductInventoryChangeType.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品库存变更类型
|
||||
/// </summary>
|
||||
public enum ProductInventoryChangeType
|
||||
{
|
||||
Initial = 0, // 初始库存
|
||||
StockIn = 1, // 入库
|
||||
StockOut = 2, // 出库
|
||||
ReturnIn = 3, //退货入库
|
||||
}
|
||||
}
|
||||
17
Atomx.Common/Enums/ResultCode.cs
Normal file
17
Atomx.Common/Enums/ResultCode.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace Atomx.Common.Enums
|
||||
{
|
||||
/// <summary>
|
||||
/// 返回代码
|
||||
/// </summary>
|
||||
public enum ResultCode
|
||||
{
|
||||
/// <summary>
|
||||
/// 成功
|
||||
/// </summary>
|
||||
Success = 0,
|
||||
/// <summary>
|
||||
/// 失败
|
||||
/// </summary>
|
||||
Fail = 1
|
||||
}
|
||||
}
|
||||
51
Atomx.Common/Models/ApiResult.cs
Normal file
51
Atomx.Common/Models/ApiResult.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
using Atomx.Common.Enums;
|
||||
using Atomx.Utils.Models;
|
||||
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class ApiResult<T> : Result<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 服务器UTC时间
|
||||
/// </summary>
|
||||
public DateTime ServerTime => DateTime.UtcNow;
|
||||
|
||||
|
||||
|
||||
public ApiResult()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public ApiResult(Result<T> result)
|
||||
{
|
||||
Data = result.Data;
|
||||
Message = result.Message;
|
||||
Code = result.Code;
|
||||
Success = result.Success;
|
||||
}
|
||||
|
||||
public ApiResult(T? data, string message, ResultCode code, bool success)
|
||||
{
|
||||
Data = data;
|
||||
Message = message;
|
||||
Code = (int)code;
|
||||
Success = success;
|
||||
}
|
||||
|
||||
public ApiResult<T> IsSuccess(T? data = default)
|
||||
{
|
||||
return new ApiResult<T>(data, string.Empty, ResultCode.Success, true);
|
||||
}
|
||||
|
||||
public ApiResult<T> IsFail(string message, T? data = default)
|
||||
{
|
||||
return new ApiResult<T>(data, message, ResultCode.Fail, false);
|
||||
}
|
||||
|
||||
public ApiResult<T> IsFail(string message)
|
||||
{
|
||||
return new ApiResult<T>(default, message, ResultCode.Fail, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
15
Atomx.Common/Models/BaseSearch.cs
Normal file
15
Atomx.Common/Models/BaseSearch.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class BaseSearch
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询开始时间
|
||||
/// </summary>
|
||||
public DateTime? StartTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 查询结束时间
|
||||
/// </summary>
|
||||
public DateTime? EndTime { get; set; }
|
||||
}
|
||||
}
|
||||
12
Atomx.Common/Models/CategoryItemModel.cs
Normal file
12
Atomx.Common/Models/CategoryItemModel.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Atomx.Common.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class CategoryItemModel : Category
|
||||
{
|
||||
public string Breadcrumbs { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
41
Atomx.Common/Models/JwtSetting.cs
Normal file
41
Atomx.Common/Models/JwtSetting.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class JwtSetting
|
||||
{
|
||||
/// <summary>
|
||||
/// 令牌的颁发者,一般就写成域名,实际可任意
|
||||
/// </summary>
|
||||
public string Issuer { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 颁发给谁,一般写成项目名,实际可任意
|
||||
/// </summary>
|
||||
public string Audience { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 签名验证的KEY,至少 128bit ,即16个英文字符以上,实际可任意英文字符
|
||||
/// </summary>
|
||||
public string SecurityKey { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 过期时间
|
||||
/// </summary>
|
||||
public int ClockSkew { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 访问令牌过期时间
|
||||
/// </summary>
|
||||
public int AccessTokenExpirationMinutes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 刷新令牌过期时间
|
||||
/// </summary>
|
||||
public int RefreshTokenExpirationMinutes { get; set; }
|
||||
}
|
||||
}
|
||||
15
Atomx.Common/Models/LocalizationFileFile.cs
Normal file
15
Atomx.Common/Models/LocalizationFileFile.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class LocalizationFile
|
||||
{
|
||||
/// <summary>
|
||||
/// 本地化文件版本
|
||||
/// </summary>
|
||||
public string ResourceVersion { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 本地化译文
|
||||
/// </summary>
|
||||
public Dictionary<string, string> Translations { get; set; } = new();
|
||||
}
|
||||
}
|
||||
45
Atomx.Common/Models/PagingList.cs
Normal file
45
Atomx.Common/Models/PagingList.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class PagingList<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 总记录数
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分页大小
|
||||
/// </summary>
|
||||
public int Size { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前页数
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 表格数据
|
||||
/// </summary>
|
||||
public List<T> Items { get; set; } = new List<T>();
|
||||
|
||||
/// <summary>
|
||||
/// 总页数
|
||||
/// </summary>
|
||||
public int Pages
|
||||
{
|
||||
get
|
||||
{
|
||||
var total = 1;
|
||||
if (Count > 0)
|
||||
{
|
||||
total = Count / Size;
|
||||
if (Count % Size > 0)
|
||||
{
|
||||
total++;
|
||||
}
|
||||
}
|
||||
return total;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
Atomx.Common/Models/ProductCategoryConfig.cs
Normal file
9
Atomx.Common/Models/ProductCategoryConfig.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 产品分类的配置信息
|
||||
/// </summary>
|
||||
public class ProductCategoryConfig
|
||||
{
|
||||
}
|
||||
}
|
||||
9
Atomx.Common/Models/SelectItem.cs
Normal file
9
Atomx.Common/Models/SelectItem.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace Atomx.Common.Models
|
||||
{
|
||||
public class SelectItem
|
||||
{
|
||||
public long Id { get; set; }
|
||||
|
||||
public string Name { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
13
Atomx.Common/Utils/ClaimKeys.cs
Normal file
13
Atomx.Common/Utils/ClaimKeys.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace Atomx.Common.Utils
|
||||
{
|
||||
public static class ClaimKeys
|
||||
{
|
||||
public const string Id = "id";
|
||||
public const string CorporationId = "cid";
|
||||
public const string Name = "name";
|
||||
public const string Email = "email";
|
||||
public const string Mobile = "mobile";
|
||||
public const string Role = "r";
|
||||
public const string Permission = "p";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user