| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using System.ComponentModel.DataAnnotations;
- using System.ComponentModel.DataAnnotations.Schema;
- namespace Domain.Entities.Developers;
- /// <summary>
- /// 앱별 Rate limit override.
- /// 기본값(60/min) 이외 한도가 필요한 앱만 row 추가.
- /// </summary>
- 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;
- }
- }
|