SPMS_API/SPMS.Domain/Entities/Service.cs
SEAN c458cfe4e7 improvement: Tag 테이블 신설 및 도메인 모델 확정 (#243)
- Tag 엔티티 생성 (ServiceId, Name, Description, CreatedAt, CreatedBy)
- ITagRepository 인터페이스 및 TagRepository 구현
- TagConfiguration: Unique Index (ServiceId, Name), FK Restrict
- Service.TagList Navigation 추가
- ErrorCodes에 Tag 에러코드 4종 추가 (191~194)
- AppDbContext DbSet<Tag>, DI 등록
- EF Core Migration AddTagTable 생성 및 적용

Closes #243
2026-02-25 17:36:14 +09:00

40 lines
1.7 KiB
C#

using SPMS.Domain.Enums;
namespace SPMS.Domain.Entities;
public class Service : BaseEntity
{
public string ServiceCode { get; set; } = string.Empty;
public string ServiceName { get; set; } = string.Empty;
public string? Description { get; set; }
public string ApiKey { get; set; } = string.Empty;
public DateTime ApiKeyCreatedAt { get; set; }
public string? ApnsBundleId { get; set; }
public string? ApnsKeyId { get; set; }
public string? ApnsTeamId { get; set; }
public string? ApnsPrivateKey { get; set; }
public string? ApnsAuthType { get; set; } // "p8" or "p12"
public string? ApnsCertificate { get; set; } // p12 Base64 (암호화 저장)
public string? ApnsCertPassword { get; set; } // p12 비밀번호 (암호화 저장)
public DateTime? ApnsCertExpiresAt { get; set; } // p12 인증서 만료일
public string? FcmCredentials { get; set; }
public string? WebhookUrl { get; set; }
public string? WebhookEvents { get; set; }
public string? Tags { get; set; }
public SubTier SubTier { get; set; }
public DateTime? SubStartedAt { get; set; }
public ServiceStatus Status { get; set; }
public DateTime CreatedAt { get; set; }
public long CreatedBy { get; set; }
public DateTime? UpdatedAt { get; set; }
public bool IsDeleted { get; set; }
public DateTime? DeletedAt { get; set; }
// Navigation
public Admin CreatedByAdmin { get; set; } = null!;
public ICollection<ServiceIp> ServiceIps { get; set; } = new List<ServiceIp>();
public ICollection<Device> Devices { get; set; } = new List<Device>();
public ICollection<Message> Messages { get; set; } = new List<Message>();
public ICollection<Tag> TagList { get; set; } = new List<Tag>();
}