config.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. export default interface Config {
  2. id: number;
  3. basic: BasicForm;
  4. images: ImagesForm;
  5. meta: MetaForm;
  6. company: CompanyForm;
  7. account: AccountForm;
  8. emailTemplate: EmailTemplate;
  9. external: ExternalApiForm;
  10. toss: TossForm;
  11. attendance: AttendanceForm;
  12. }
  13. export interface BasicForm {
  14. siteName: string|null;
  15. siteURL: string|null;
  16. rootID: string|null;
  17. fromEmail: string|null;
  18. fromName: string|null;
  19. smtpServer: string|null;
  20. smtpPort: number|null;
  21. smtpEnableSSL: boolean;
  22. smtpUsername: string|null;
  23. smtpPassword: string|null;
  24. adminWhiteIPList: string|null;
  25. frontWhiteIPList: string|null;
  26. blockAlertTitle: string|null;
  27. blockAlertContent: string|null;
  28. isMaintenance: boolean;
  29. maintenanceContent: string|null;
  30. }
  31. export interface ImagesForm {
  32. faviconPath: string|null;
  33. logoSquarePath: string|null;
  34. logoHorizontalPath: string|null;
  35. ogDefaultPath: string|null;
  36. twitterImagePath: string|null;
  37. appleTouchIconPath: string|null;
  38. appIcon192Path: string|null;
  39. appIcon512Path: string|null;
  40. }
  41. export interface MetaForm {
  42. keywords: string|null;
  43. description: string|null;
  44. author: string|null;
  45. viewport: string|null;
  46. applicationName: string|null;
  47. generator: string|null;
  48. robots: string|null;
  49. adds: string|null;
  50. }
  51. export interface CompanyForm {
  52. name: string|null;
  53. regNo: string|null;
  54. address: string|null;
  55. zipCode: string|null;
  56. owner: string|null;
  57. tel: string|null;
  58. fax: string|null;
  59. retailSaleNo: string|null;
  60. addedSaleNo: string|null;
  61. hosting: string|null;
  62. adminName: string|null;
  63. adminEmail: string|null;
  64. siteUrl: string|null;
  65. bankCode: string|null;
  66. bankOwner: string|null;
  67. bankNumber: string|null;
  68. }
  69. export interface AccountForm {
  70. isRegisterBlock: boolean;
  71. isRegisterEmailAuth: boolean;
  72. passwordMinLength: number|null;
  73. passwordUppercaseLength: number|null;
  74. passwordNumbersLength: number|null;
  75. passwordSpecialcharsLength: number|null;
  76. deniedEmailList: string|null;
  77. deniedNameList: string|null;
  78. changeEmailDay: number|null;
  79. changeNameDay: number|null;
  80. changeSummaryDay: number|null;
  81. changeIntroDay: number|null;
  82. changeThumbDay: number|null;
  83. changePasswordDay: number|null;
  84. isLoginEmailVerifiedOnly: boolean;
  85. maxLoginTryCount: number|null;
  86. maxLoginTryLimitSecond: number|null;
  87. }
  88. export interface EmailTemplate {
  89. registerEmailFormTitle: string|null;
  90. registerEmailFormContent: string|null;
  91. registrationEmailFormTitle: string|null;
  92. registrationEmailFormContent: string|null;
  93. resetPasswordEmailFormTitle: string|null;
  94. resetPasswordEmailFormContent: string|null;
  95. changedPasswordEmailFormTitle: string|null;
  96. changedPasswordEmailFormContent: string|null;
  97. withdrawEmailFormTitle: string|null;
  98. withdrawEmailFormContent: string|null;
  99. emailVerifyFormTitle: string|null;
  100. emailVerifyFormContent: string|null;
  101. changedEmailFormTitle: string|null;
  102. changedEmailFormContent: string|null;
  103. }
  104. export interface ExternalApiForm {
  105. youTubeApiKeyEnc: string|null;
  106. youTubeApiName: string|null;
  107. googleClientId: string|null;
  108. googleClientSecretEnc: string|null;
  109. googleAppId: string|null;
  110. }
  111. export interface TossForm {
  112. // 토스페이먼츠 결제 환경 (test/live) — 키 원문은 응답에 실리지 않고 설정 여부만 노출
  113. tossPayMode: string|null;
  114. hasTestClientKey: boolean;
  115. hasTestSecretKey: boolean;
  116. hasLiveClientKey: boolean;
  117. hasLiveSecretKey: boolean;
  118. }
  119. export interface AttendanceForm {
  120. isEnabled: boolean;
  121. baseExp: number;
  122. basePoint: number;
  123. useStreakBonus: boolean;
  124. streakBonusPerDay: number;
  125. streakBonusPointPerDay: number;
  126. streakBonusMaxDays: number;
  127. useRankBonus: boolean;
  128. rankBonusConfig: string|null;
  129. }
  130. export interface RankBonusEntry {
  131. rank: number;
  132. exp: number;
  133. point: number;
  134. }