using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Domain.Entities.Developers; /// /// 앱별 Rate limit override. /// 기본값(60/min) 이외 한도가 필요한 앱만 row 추가. /// public class ApiRateLimit { [ForeignKey(nameof(ApplicationID))] public virtual ApiApplication? Application { get; private set; } [Key] public int ID { get; private set; } public int ApplicationID { get; private set; } public int LimitPerMinute { get; private set; } public DateTime CreatedAt { get; private set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; private set; } = DateTime.UtcNow; private ApiRateLimit() { } public static ApiRateLimit Create(int applicationID, int limitPerMinute) { return new ApiRateLimit { ApplicationID = applicationID, LimitPerMinute = limitPerMinute }; } public void SetLimit(int limitPerMinute) { LimitPerMinute = limitPerMinute; UpdatedAt = DateTime.UtcNow; } }