✨ Wallet, payment, developer apps, feature flags of publishers
♻️ Simplified the permission check of chat room, realm, publishers
			
			
This commit is contained in:
		
							
								
								
									
										51
									
								
								DysonNetwork.Sphere/Wallet/Payment.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								DysonNetwork.Sphere/Wallet/Payment.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| using System.ComponentModel.DataAnnotations; | ||||
| using NodaTime; | ||||
|  | ||||
| namespace DysonNetwork.Sphere.Wallet; | ||||
|  | ||||
| public enum OrderStatus | ||||
| { | ||||
|     Unpaid, | ||||
|     Paid, | ||||
|     Cancelled, | ||||
|     Finished, | ||||
|     Expired | ||||
| } | ||||
|  | ||||
| public class Order : ModelBase | ||||
| { | ||||
|     public Guid Id { get; set; } = Guid.NewGuid(); | ||||
|     public OrderStatus Status { get; set; } = OrderStatus.Unpaid; | ||||
|     [MaxLength(128)] public string Currency { get; set; } = null!; | ||||
|     [MaxLength(4096)] public string? Remarks { get; set; } | ||||
|     public decimal Amount { get; set; } | ||||
|     public Instant ExpiredAt { get; set; } | ||||
|      | ||||
|     public Guid PayeeWalletId { get; set; } | ||||
|     public Wallet PayeeWallet { get; set; } = null!; | ||||
|     public Guid? TransactionId { get; set; } | ||||
|     public Transaction? Transaction { get; set; } | ||||
| } | ||||
|  | ||||
| public enum TransactionType | ||||
| { | ||||
|     System, | ||||
|     Transfer, | ||||
|     Order | ||||
| } | ||||
|  | ||||
| public class Transaction : ModelBase | ||||
| { | ||||
|     public Guid Id { get; set; } = Guid.NewGuid(); | ||||
|     [MaxLength(128)] public string Currency { get; set; } = null!; | ||||
|     public decimal Amount { get; set; } | ||||
|     [MaxLength(4096)] public string? Remarks { get; set; } | ||||
|     public TransactionType Type { get; set; } | ||||
|      | ||||
|     // When the payer is null, it's pay from the system | ||||
|     public Guid? PayerWalletId { get; set; } | ||||
|     public Wallet? PayerWallet { get; set; } | ||||
|     // When the payee is null, it's pay for the system | ||||
|     public Guid? PayeeWalletId { get; set; } | ||||
|     public Wallet? PayeeWallet { get; set; } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user