115 lines
2.8 KiB
C#
115 lines
2.8 KiB
C#
namespace GreenHome.Domain;
|
|
|
|
/// <summary>
|
|
/// نوع پیام در گروه مجازی دستگاه
|
|
/// </summary>
|
|
public enum DevicePostType
|
|
{
|
|
/// <summary>متن</summary>
|
|
Text = 0,
|
|
|
|
/// <summary>تصویر</summary>
|
|
Image = 1,
|
|
|
|
/// <summary>ویس</summary>
|
|
Voice = 2,
|
|
|
|
/// <summary>اسنپشات وضعیت سنسورها و رلهها</summary>
|
|
SensorSnapshot = 3
|
|
}
|
|
|
|
/// <summary>
|
|
/// پستهای گروه مجازی دستگاه (تایملاین مشترک)
|
|
/// </summary>
|
|
public sealed class DevicePost
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// شناسه دستگاه
|
|
/// </summary>
|
|
public int DeviceId { get; set; }
|
|
public Device Device { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// شناسه کاربر نویسنده پست
|
|
/// </summary>
|
|
public int AuthorUserId { get; set; }
|
|
public User AuthorUser { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// متن پست
|
|
/// </summary>
|
|
public string Content { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// نوع پیام
|
|
/// </summary>
|
|
public DevicePostType PostType { get; set; } = DevicePostType.Text;
|
|
|
|
/// <summary>
|
|
/// مسیر نسبی فایل صوتی (برای پیام ویس)
|
|
/// </summary>
|
|
public string? VoiceFilePath { get; set; }
|
|
|
|
/// <summary>
|
|
/// مدتزمان ویس (ثانیه)
|
|
/// </summary>
|
|
public int? VoiceDurationSeconds { get; set; }
|
|
|
|
/// <summary>
|
|
/// تصاویر پیوست
|
|
/// </summary>
|
|
public ICollection<DevicePostImage> Images { get; set; } = new List<DevicePostImage>();
|
|
|
|
/// <summary>
|
|
/// زمان ایجاد
|
|
/// </summary>
|
|
public DateTime CreatedAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// زمان آخرین ویرایش
|
|
/// </summary>
|
|
public DateTime? UpdatedAt { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// تصاویر پیوست پست
|
|
/// </summary>
|
|
public sealed class DevicePostImage
|
|
{
|
|
public int Id { get; set; }
|
|
|
|
/// <summary>
|
|
/// شناسه پست
|
|
/// </summary>
|
|
public int DevicePostId { get; set; }
|
|
public DevicePost DevicePost { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// نام فایل
|
|
/// </summary>
|
|
public string FileName { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// مسیر ذخیره فایل
|
|
/// </summary>
|
|
public string FilePath { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// نوع فایل (MIME type)
|
|
/// </summary>
|
|
public string ContentType { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// حجم فایل (بایت)
|
|
/// </summary>
|
|
public long FileSize { get; set; }
|
|
|
|
/// <summary>
|
|
/// زمان آپلود
|
|
/// </summary>
|
|
public DateTime UploadedAt { get; set; }
|
|
}
|
|
|