config.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. payment: PaymentForm;
  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. changePasswordDay: number|null;
  83. isLoginEmailVerifiedOnly: boolean;
  84. maxLoginTryCount: number|null;
  85. maxLoginTryLimitSecond: number|null;
  86. }
  87. export interface EmailTemplate {
  88. registerEmailFormTitle: string|null;
  89. registerEmailFormContent: string|null;
  90. registrationEmailFormTitle: string|null;
  91. registrationEmailFormContent: string|null;
  92. resetPasswordEmailFormTitle: string|null;
  93. resetPasswordEmailFormContent: string|null;
  94. changedPasswordEmailFormTitle: string|null;
  95. changedPasswordEmailFormContent: string|null;
  96. withdrawEmailFormTitle: string|null;
  97. withdrawEmailFormContent: string|null;
  98. emailVerifyFormTitle: string|null;
  99. emailVerifyFormContent: string|null;
  100. changedEmailFormTitle: string|null;
  101. changedEmailFormContent: string|null;
  102. }
  103. export interface ExternalApiForm {
  104. youTubeApiKeyEnc: string|null;
  105. youTubeApiName: string|null;
  106. googleClientId: string|null;
  107. googleClientSecretEnc: string|null;
  108. googleAppId: string|null;
  109. danalPayMode: string|null;
  110. }
  111. export interface PaymentForm {
  112. // 수수료 (% 가 우선 적용 후 원 가산)
  113. danalCardFeeRate: number|null;
  114. danalCardFeeAmount: number|null;
  115. danalKakaoPayFeeRate: number|null;
  116. danalKakaoPayFeeAmount: number|null;
  117. danalNaverPayFeeRate: number|null;
  118. danalNaverPayFeeAmount: number|null;
  119. danalTransferFeeRate: number|null;
  120. danalTransferFeeAmount: number|null;
  121. danalMobileFeeRate: number|null;
  122. danalMobileFeeAmount: number|null;
  123. danalVbankFeeRate: number|null;
  124. danalVbankFeeAmount: number|null;
  125. // 결제 수단 사용 여부
  126. isCardEnabled: boolean;
  127. isKakaoPayEnabled: boolean;
  128. isNaverPayEnabled: boolean;
  129. isTransferEnabled: boolean;
  130. isMobileEnabled: boolean;
  131. isVirtualAccountEnabled: boolean;
  132. }
  133. export interface AttendanceForm {
  134. isEnabled: boolean;
  135. baseExp: number;
  136. basePoint: number;
  137. useStreakBonus: boolean;
  138. streakBonusPerDay: number;
  139. streakBonusPointPerDay: number;
  140. streakBonusMaxDays: number;
  141. useRankBonus: boolean;
  142. rankBonusConfig: string|null;
  143. }
  144. export interface RankBonusEntry {
  145. rank: number;
  146. exp: number;
  147. point: number;
  148. }