| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System.ComponentModel.DataAnnotations;
- using System.ComponentModel.DataAnnotations.Schema;
- namespace Domain.Entities.Members;
- /// <summary>
- /// 채널 핸들 변경 이력 — 이전 핸들로 접속 시 현재 핸들로 리다이렉트 하기 위한 테이블
- /// </summary>
- public sealed class ChannelHandleHistory
- {
- [ForeignKey(nameof(ChannelID))]
- public Channel Channel { get; private set; } = null!;
- [Key]
- public int ID { get; private set; }
- public int ChannelID { get; private set; }
- public string OldHandle { get; private set; } = default!;
- public DateTime ChangedAt { get; private set; } = DateTime.UtcNow;
- private ChannelHandleHistory() { }
- private ChannelHandleHistory(int channelID, string oldHandle)
- {
- if (channelID <= 0)
- {
- throw new ArgumentOutOfRangeException(nameof(channelID));
- }
- if (string.IsNullOrWhiteSpace(oldHandle))
- {
- throw new ArgumentException("OldHandle is required.", nameof(oldHandle));
- }
- if (oldHandle.Length > 30)
- {
- throw new ArgumentOutOfRangeException(nameof(oldHandle));
- }
- ChannelID = channelID;
- OldHandle = oldHandle;
- ChangedAt = DateTime.UtcNow;
- }
- public static ChannelHandleHistory Create(int channelID, string oldHandle)
- {
- return new(channelID, oldHandle);
- }
- }
|