Response.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. using Microsoft.AspNetCore.Http;
  2. using System.ComponentModel;
  3. namespace Application.Features.Config.Get;
  4. public sealed class Response
  5. {
  6. public int ID { get; init; }
  7. public BasicConfigDto Basic { get; init; } = new();
  8. public ImagesConfigDto Images { get; init; } = new();
  9. public MetaConfigDto Meta { get; init; } = new();
  10. public CompanyConfigDto Company { get; init; } = new();
  11. public AccountConfigDto Account { get; init; } = new();
  12. public EmailTemplateConfigDto EmailTemplate { get; init; } = new();
  13. public ExternalApiConfigDto External { get; init; } = new();
  14. public PaymentConfigDto Payment { get; init; } = new();
  15. public sealed class BasicConfigDto
  16. {
  17. [DisplayName("사이트 이름")]
  18. public string? SiteName { get; init; }
  19. [DisplayName("사이트 주소")]
  20. public string? SiteURL { get; init; }
  21. [DisplayName("최고 관리자 ID")]
  22. public string? RootID { get; init; }
  23. [DisplayName("송수신 이메일")]
  24. public string? FromEmail { get; init; }
  25. [DisplayName("송수신자 이름")]
  26. public string? FromName { get; init; }
  27. [DisplayName("SMTP Server")]
  28. public string? SmtpServer { get; init; }
  29. [DisplayName("SMTP Port")]
  30. public int? SmtpPort { get; set; }
  31. [DisplayName("SMTP Enable SSL")]
  32. public bool SmtpEnableSSL { get; init; } = false;
  33. [DisplayName("SMTP Username")]
  34. public string? SmtpUsername { get; init; }
  35. [DisplayName("SMTP Password")]
  36. public string? SmtpPassword { get; init; }
  37. [DisplayName("관리자단 접근 가능 IP")]
  38. public string? AdminWhiteIPList { get; init; }
  39. [DisplayName("사용자단 접근 가능 IP")]
  40. public string? FrontWhiteIPList { get; init; }
  41. [DisplayName("차단 시 안내문 제목")]
  42. public string? BlockAlertTitle { get; init; }
  43. [DisplayName("차단 시 안내문 내용")]
  44. public string? BlockAlertContent { get; init; }
  45. [DisplayName("점검 여부")]
  46. public bool IsMaintenance { get; init; } = false;
  47. [DisplayName("점검 내용")]
  48. public string? MaintenanceContent { get; init; }
  49. }
  50. public sealed class ImagesConfigDto
  51. {
  52. // ====== DB에 저장/표시할 경로(문자열) ======
  53. [DisplayName("Favicon")]
  54. public string? FaviconPath { get; init; }
  55. [DisplayName("Logo-square")]
  56. public string? LogoSquarePath { get; init; }
  57. [DisplayName("Logo-horizontal")]
  58. public string? LogoHorizontalPath { get; init; }
  59. [DisplayName("og-default")]
  60. public string? OgDefaultPath { get; init; }
  61. [DisplayName("Twitter-image")]
  62. public string? TwitterImagePath { get; init; }
  63. [DisplayName("Apple-touch-icon")]
  64. public string? AppleTouchIconPath { get; init; }
  65. [DisplayName("App-icon-192")]
  66. public string? AppIcon192Path { get; init; }
  67. [DisplayName("App-icon-512")]
  68. public string? AppIcon512Path { get; init; }
  69. // ====== 업로드 입력(폼 바인딩용) ======
  70. [DisplayName("Favicon 업로드")]
  71. public IFormFile? FaviconFile { get; init; }
  72. [DisplayName("Logo-square 업로드")]
  73. public IFormFile? LogoSquareFile { get; init; }
  74. [DisplayName("Logo-horizontal 업로드")]
  75. public IFormFile? LogoHorizontalFile { get; init; }
  76. [DisplayName("og-default 업로드")]
  77. public IFormFile? OgDefaultFile { get; init; }
  78. [DisplayName("Twitter-image 업로드")]
  79. public IFormFile? TwitterImageFile { get; init; }
  80. [DisplayName("Apple-touch-icon 업로드")]
  81. public IFormFile? AppleTouchIconFile { get; init; }
  82. [DisplayName("App-icon-192 업로드")]
  83. public IFormFile? AppIcon192File { get; init; }
  84. [DisplayName("App-icon-512 업로드")]
  85. public IFormFile? AppIcon512File { get; init; }
  86. }
  87. public sealed class MetaConfigDto
  88. {
  89. [DisplayName("Meta Keywords")]
  90. public string? Keywords { get; init; }
  91. [DisplayName("Meta Description")]
  92. public string? Description { get; init; }
  93. [DisplayName("Meta Author")]
  94. public string? Author { get; init; }
  95. [DisplayName("Meta Viewport")]
  96. public string? Viewport { get; init; }
  97. [DisplayName("Meta ApplicationName")]
  98. public string? ApplicationName { get; init; }
  99. [DisplayName("Meta Generator")]
  100. public string? Generator { get; init; }
  101. [DisplayName("Meta Robots")]
  102. public string? Robots { get; init; }
  103. [DisplayName("Meta Adds")]
  104. public string? Adds { get; init; }
  105. }
  106. public sealed class CompanyConfigDto
  107. {
  108. [DisplayName("상호 명")]
  109. public string? Name { get; init; }
  110. [DisplayName("사업자 등록 번호")]
  111. public string? RegNo { get; init; }
  112. [DisplayName("사업자 소재지")]
  113. public string? Address { get; init; }
  114. [DisplayName("우편번호")]
  115. public string? ZipCode { get; init; }
  116. [DisplayName("대표자 명")]
  117. public string? Owner { get; init; }
  118. [DisplayName("대표 전화번호")]
  119. public string? Tel { get; init; }
  120. [DisplayName("FAX")]
  121. public string? Fax { get; init; }
  122. [DisplayName("통신판매업 신고번호")]
  123. public string? RetailSaleNo { get; init; }
  124. [DisplayName("부가통신 사업자번호")]
  125. public string? AddedSaleNo { get; init; }
  126. [DisplayName("호스팅 서비스")]
  127. public string? Hosting { get; init; }
  128. [DisplayName("정보관리책임자")]
  129. public string? AdminName { get; init; }
  130. [DisplayName("정보관리책임자 이메일")]
  131. public string? AdminEmail { get; init; }
  132. [DisplayName("사이트 주소")]
  133. public string? SiteUrl { get; init; }
  134. [DisplayName("입금계좌 - 은행")]
  135. public string? BankCode { get; init; }
  136. [DisplayName("입금계좌 - 예금주")]
  137. public string? BankOwner { get; init; }
  138. [DisplayName("입금계좌 - 계좌번호")]
  139. public string? BankNumber { get; init; }
  140. }
  141. public sealed class AccountConfigDto
  142. {
  143. public bool IsRegisterBlock { get; init; }
  144. public bool IsRegisterEmailAuth { get; init; }
  145. public ushort? PasswordMinLength { get; init; }
  146. public ushort? PasswordUppercaseLength { get; init; }
  147. public ushort? PasswordNumbersLength { get; init; }
  148. public ushort? PasswordSpecialcharsLength { get; init; }
  149. public string? DeniedEmailList { get; init; }
  150. public string? DeniedNameList { get; init; }
  151. public ushort? ChangeEmailDay { get; init; }
  152. public ushort? ChangeNameDay { get; init; }
  153. public ushort? ChangeSummaryDay { get; init; }
  154. public ushort? ChangeIntroDay { get; init; }
  155. public ushort? ChangePasswordDay { get; init; }
  156. public ushort? MaxLoginTryCount { get; init; }
  157. public ushort? MaxLoginTryLimitSecond { get; init; }
  158. }
  159. public sealed class EmailTemplateConfigDto
  160. {
  161. public string? RegisterEmailFormTitle { get; init; }
  162. public string? RegisterEmailFormContent { get; init; }
  163. public string? RegistrationEmailFormTitle { get; init; }
  164. public string? RegistrationEmailFormContent { get; init; }
  165. public string? ResetPasswordEmailFormTitle { get; init; }
  166. public string? ResetPasswordEmailFormContent { get; init; }
  167. public string? ChangedPasswordEmailFormTitle { get; init; }
  168. public string? ChangedPasswordEmailFormContent { get; init; }
  169. public string? WithdrawEmailFormTitle { get; init; }
  170. public string? WithdrawEmailFormContent { get; init; }
  171. public string? EmailVerifyFormTitle { get; init; }
  172. public string? EmailVerifyFormContent { get; init; }
  173. public string? ChangedEmailFormTitle { get; init; }
  174. public string? ChangedEmailFormContent { get; init; }
  175. }
  176. public sealed class ExternalApiConfigDto
  177. {
  178. public string? YouTubeApiKeyEnc { get; init; }
  179. public string? YouTubeApiName { get; init; }
  180. public string? GoogleClientId { get; init; }
  181. public string? GoogleClientSecretEnc { get; init; }
  182. public string? GoogleAppId { get; init; }
  183. }
  184. public sealed class PaymentConfigDto
  185. {
  186. }
  187. }