@armoyu/ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/app/api/proxy/[...path]/route.d.ts +22 -0
  2. package/dist/app/api/proxy/[...path]/route.d.ts.map +1 -0
  3. package/dist/app/api/proxy/[...path]/route.js +89 -0
  4. package/dist/app/api/proxy/[...path]/route.js.map +1 -0
  5. package/dist/app/layout.js +11 -11
  6. package/dist/components/Button.d.ts +7 -7
  7. package/dist/components/Button.js +15 -15
  8. package/dist/components/GenderStatsBar.d.ts +5 -5
  9. package/dist/components/GenderStatsBar.js +7 -7
  10. package/dist/components/RollingNumber.d.ts +6 -6
  11. package/dist/components/RollingNumber.js +23 -23
  12. package/dist/components/Slider.d.ts +10 -10
  13. package/dist/components/Slider.js +35 -35
  14. package/dist/components/StatsGrid.js +13 -13
  15. package/dist/components/ViewModeToggle.d.ts +7 -7
  16. package/dist/components/ViewModeToggle.js +9 -9
  17. package/dist/components/modules/auth/Dashboard.js +250 -250
  18. package/dist/components/modules/auth/MediaLightbox.d.ts +13 -13
  19. package/dist/components/modules/auth/MediaLightbox.js +46 -46
  20. package/dist/components/modules/auth/PostCard.js +112 -112
  21. package/dist/components/modules/auth/PostInteractionsModal.js +12 -12
  22. package/dist/components/modules/auth/RepostModal.js +75 -75
  23. package/dist/components/modules/auth/SidebarLeft.js +40 -40
  24. package/dist/components/modules/auth/Stories.js +15 -15
  25. package/dist/components/modules/auth/StoryViewer.js +47 -47
  26. package/dist/components/modules/chat/ChatContainer.js +196 -196
  27. package/dist/components/modules/chat/ChatInput.js +30 -30
  28. package/dist/components/modules/chat/ChatList.js +51 -51
  29. package/dist/components/modules/chat/ChatMessage.d.ts +11 -11
  30. package/dist/components/modules/chat/ChatMessage.js +6 -6
  31. package/dist/components/modules/chat/ChatNotes.js +11 -11
  32. package/dist/components/modules/community/GroupHeader.js +17 -17
  33. package/dist/components/modules/community/GroupMenu.js +16 -16
  34. package/dist/components/modules/community/SchoolCard.js +7 -7
  35. package/dist/components/modules/community/SurveyCard.js +35 -35
  36. package/dist/components/modules/forum/ForumBoard.d.ts +16 -16
  37. package/dist/components/modules/forum/ForumBoard.js +6 -6
  38. package/dist/components/modules/forum/ForumPost.d.ts +13 -13
  39. package/dist/components/modules/forum/ForumPost.js +5 -5
  40. package/dist/components/modules/forum/NewTopicModal.d.ts +7 -7
  41. package/dist/components/modules/forum/NewTopicModal.js +26 -26
  42. package/dist/components/modules/forum/TopicItem.d.ts +15 -15
  43. package/dist/components/modules/forum/TopicItem.js +6 -6
  44. package/dist/components/modules/galleries/GalleryCard.d.ts +9 -9
  45. package/dist/components/modules/galleries/GalleryCard.js +5 -5
  46. package/dist/components/modules/giveaways/GiveawayCard.d.ts +9 -9
  47. package/dist/components/modules/giveaways/GiveawayCard.js +6 -6
  48. package/dist/components/modules/groups/ApplicationModal.d.ts +7 -7
  49. package/dist/components/modules/groups/ApplicationModal.js +27 -27
  50. package/dist/components/modules/groups/GroupCard.d.ts +12 -12
  51. package/dist/components/modules/groups/GroupCard.js +6 -6
  52. package/dist/components/modules/guest/Introduction.js +13 -13
  53. package/dist/components/modules/magaza/BackToStore.js +10 -10
  54. package/dist/components/modules/magaza/StoreHeader.js +8 -8
  55. package/dist/components/modules/news/NewsCard.js +6 -6
  56. package/dist/components/modules/news/NewsComments.js +52 -52
  57. package/dist/components/modules/profile/CloudStorageModal.d.ts +8 -8
  58. package/dist/components/modules/profile/CloudStorageModal.js +31 -31
  59. package/dist/components/modules/profile/EditProfileModal.d.ts +8 -8
  60. package/dist/components/modules/profile/EditProfileModal.js +27 -27
  61. package/dist/components/modules/profile/ProfileContent.js +70 -70
  62. package/dist/components/modules/profile/ProfileHeader.js +19 -19
  63. package/dist/components/modules/profile/ProfileStats.d.ts +1 -1
  64. package/dist/components/modules/profile/ProfileStats.js +14 -14
  65. package/dist/components/modules/profile/TeamSelectorModal.js +16 -16
  66. package/dist/components/modules/stations/StationCard.js +25 -25
  67. package/dist/components/modules/stations/StationQRModal.js +12 -12
  68. package/dist/components/shared/FloatingChatButton.js +20 -20
  69. package/dist/components/shared/Footer.d.ts +1 -1
  70. package/dist/components/shared/Footer.js +9 -9
  71. package/dist/components/shared/Header.js +97 -97
  72. package/dist/components/shared/LoginModal.d.ts.map +1 -1
  73. package/dist/components/shared/LoginModal.js +12 -16
  74. package/dist/components/shared/LoginModal.js.map +1 -1
  75. package/dist/components/shared/MainLayoutWrapper.js +7 -7
  76. package/dist/components/shared/PageWidth.d.ts +5 -5
  77. package/dist/components/shared/PageWidth.js +13 -13
  78. package/dist/components/showcase/SocialTab.d.ts.map +1 -1
  79. package/dist/components/showcase/SocialTab.js +47 -2
  80. package/dist/components/showcase/SocialTab.js.map +1 -1
  81. package/dist/context/AuthContext.d.ts +1 -1
  82. package/dist/context/AuthContext.d.ts.map +1 -1
  83. package/dist/context/AuthContext.js +52 -33
  84. package/dist/context/AuthContext.js.map +1 -1
  85. package/dist/context/CartContext.js +63 -63
  86. package/dist/context/ChatContext.d.ts +12 -12
  87. package/dist/context/ChatContext.js +17 -17
  88. package/dist/context/LayoutContext.d.ts +10 -10
  89. package/dist/context/LayoutContext.js +16 -16
  90. package/dist/context/SocketContext.js +30 -30
  91. package/dist/context/ThemeContext.d.ts +10 -10
  92. package/dist/context/ThemeContext.js +39 -39
  93. package/dist/index.js +80 -80
  94. package/dist/lib/constants/educationData.js +117 -117
  95. package/dist/lib/constants/punishmentData.d.ts +29 -29
  96. package/dist/lib/constants/punishmentData.js +183 -183
  97. package/dist/lib/constants/seedData.js +694 -694
  98. package/dist/lib/constants/stationData.js +166 -166
  99. package/dist/lib/constants/surveyData.js +49 -49
  100. package/dist/lib/constants/teamData.js +65 -65
  101. package/dist/types/stats.d.ts +17 -17
  102. package/dist/types/stats.js +1 -1
  103. package/package.json +47 -46
  104. package/src/globals.css +187 -187
  105. package/next.config.ts +0 -13
  106. package/postcss.config.js +0 -6
  107. package/src/app/layout.tsx +0 -64
  108. package/src/app/page.tsx +0 -101
  109. package/src/components/Button.tsx +0 -41
  110. package/src/components/GenderStatsBar.tsx +0 -66
  111. package/src/components/RollingNumber.tsx +0 -50
  112. package/src/components/Slider.tsx +0 -114
  113. package/src/components/StatsGrid.tsx +0 -35
  114. package/src/components/ViewModeToggle.tsx +0 -39
  115. package/src/components/modules/auth/Dashboard.tsx +0 -649
  116. package/src/components/modules/auth/MediaLightbox.tsx +0 -112
  117. package/src/components/modules/auth/PostCard.tsx +0 -556
  118. package/src/components/modules/auth/PostInteractionsModal.tsx +0 -138
  119. package/src/components/modules/auth/RepostModal.tsx +0 -167
  120. package/src/components/modules/auth/SidebarLeft.tsx +0 -237
  121. package/src/components/modules/auth/Stories.tsx +0 -69
  122. package/src/components/modules/auth/StoryViewer.tsx +0 -146
  123. package/src/components/modules/chat/ChatContainer.tsx +0 -332
  124. package/src/components/modules/chat/ChatInput.tsx +0 -57
  125. package/src/components/modules/chat/ChatList.tsx +0 -179
  126. package/src/components/modules/chat/ChatMessage.tsx +0 -43
  127. package/src/components/modules/chat/ChatNotes.tsx +0 -58
  128. package/src/components/modules/community/GroupHeader.tsx +0 -111
  129. package/src/components/modules/community/GroupMenu.tsx +0 -82
  130. package/src/components/modules/community/SchoolCard.tsx +0 -104
  131. package/src/components/modules/community/SurveyCard.tsx +0 -149
  132. package/src/components/modules/forum/ForumBoard.tsx +0 -78
  133. package/src/components/modules/forum/ForumPost.tsx +0 -71
  134. package/src/components/modules/forum/NewTopicModal.tsx +0 -112
  135. package/src/components/modules/forum/TopicItem.tsx +0 -72
  136. package/src/components/modules/galleries/GalleryCard.tsx +0 -66
  137. package/src/components/modules/giveaways/GiveawayCard.tsx +0 -76
  138. package/src/components/modules/groups/ApplicationModal.tsx +0 -133
  139. package/src/components/modules/groups/GroupCard.tsx +0 -96
  140. package/src/components/modules/guest/Introduction.tsx +0 -60
  141. package/src/components/modules/magaza/BackToStore.tsx +0 -53
  142. package/src/components/modules/magaza/StoreHeader.tsx +0 -74
  143. package/src/components/modules/news/NewsCard.tsx +0 -66
  144. package/src/components/modules/news/NewsComments.tsx +0 -141
  145. package/src/components/modules/profile/CloudStorageModal.tsx +0 -200
  146. package/src/components/modules/profile/EditProfileModal.tsx +0 -191
  147. package/src/components/modules/profile/ProfileContent.tsx +0 -491
  148. package/src/components/modules/profile/ProfileHeader.tsx +0 -128
  149. package/src/components/modules/profile/ProfileStats.tsx +0 -72
  150. package/src/components/modules/profile/TeamSelectorModal.tsx +0 -129
  151. package/src/components/modules/stations/StationCard.tsx +0 -95
  152. package/src/components/modules/stations/StationQRModal.tsx +0 -102
  153. package/src/components/shared/FloatingChatButton.tsx +0 -57
  154. package/src/components/shared/Footer.tsx +0 -77
  155. package/src/components/shared/Header.tsx +0 -799
  156. package/src/components/shared/LoginModal.tsx +0 -208
  157. package/src/components/shared/MainLayoutWrapper.tsx +0 -15
  158. package/src/components/shared/PageWidth.tsx +0 -22
  159. package/src/components/showcase/CommunityTab.tsx +0 -22
  160. package/src/components/showcase/CorporateTab.tsx +0 -38
  161. package/src/components/showcase/GeneralTab.tsx +0 -41
  162. package/src/components/showcase/MessagesTab.tsx +0 -26
  163. package/src/components/showcase/ProfileTab.tsx +0 -20
  164. package/src/components/showcase/ShopTab.tsx +0 -24
  165. package/src/components/showcase/SocialTab.tsx +0 -28
  166. package/src/context/AuthContext.tsx +0 -104
  167. package/src/context/CartContext.tsx +0 -93
  168. package/src/context/ChatContext.tsx +0 -32
  169. package/src/context/LayoutContext.tsx +0 -29
  170. package/src/context/SocketContext.tsx +0 -50
  171. package/src/context/ThemeContext.tsx +0 -52
  172. package/src/index.ts +0 -96
  173. package/src/lib/constants/educationData.ts +0 -124
  174. package/src/lib/constants/punishmentData.ts +0 -201
  175. package/src/lib/constants/seedData.ts +0 -758
  176. package/src/lib/constants/stationData.ts +0 -170
  177. package/src/lib/constants/surveyData.ts +0 -53
  178. package/src/lib/constants/teamData.ts +0 -69
  179. package/src/lib/utils/numberFormat.ts +0 -16
  180. package/src/lib/utils/odpUtils.ts +0 -51
  181. package/src/types/index.ts +0 -1
  182. package/src/types/stats.ts +0 -17
@@ -1,184 +1,184 @@
1
- export const PUNISHMENT_RULES = [
2
- // SOHBET (M1.X)
3
- {
4
- id: 'spam-flood',
5
- article: 'M1.1',
6
- category: 'SOHBET',
7
- name: 'Spam / Flood',
8
- description: 'Sohbet veya yorum alanlarında tekrarlayıcı ve rahatsız edici içerik paylaşımı.',
9
- duration: 24,
10
- restrictions: ['CHAT_BAN'],
11
- severity: 'low',
12
- isMajor: false
13
- },
14
- {
15
- id: 'inappropriate-lang',
16
- article: 'M1.2',
17
- category: 'SOHBET',
18
- name: 'Uygunsuz Dil / Küfür',
19
- description: 'Diğer kullanıcılara yönelik hakaret, küfür veya aşağılayıcı ifadeler.',
20
- duration: 72,
21
- restrictions: ['CHAT_BAN'],
22
- severity: 'medium',
23
- isMajor: true
24
- },
25
- {
26
- id: 'toxic-behavior',
27
- article: 'M1.3',
28
- category: 'SOHBET',
29
- name: 'Toksik Davranış / Kışkırtma',
30
- description: 'Topluluk huzurunu bozmaya yönelik kışkırtmalar ve huzursuzluk çıkarma.',
31
- duration: 48,
32
- restrictions: ['CHAT_BAN'],
33
- severity: 'low',
34
- isMajor: false
35
- },
36
- // İÇERİK (M2.X)
37
- {
38
- id: 'misleading-content',
39
- article: 'M2.1',
40
- category: 'İÇERİK',
41
- name: 'Hatalı Paylaşım / Clickbait',
42
- description: 'Topluluğu yanıltıcı veya gereksiz (çöp) içerik üretimi.',
43
- duration: 48,
44
- restrictions: ['POST_BAN'],
45
- severity: 'low',
46
- isMajor: false
47
- },
48
- {
49
- id: 'illegal-content',
50
- article: 'M2.2',
51
- category: 'İÇERİK',
52
- name: 'İllegal / Uygunsuz Paylaşım',
53
- description: 'Yasal olmayan içeriklerin, korsan yazılım veya uygunsuz medyanın paylaşımı.',
54
- duration: 0,
55
- restrictions: ['PERMANENT_BAN'],
56
- severity: 'critical',
57
- isMajor: true
58
- },
59
- {
60
- id: 'ad-sharing',
61
- article: 'M2.3',
62
- category: 'İÇERİK',
63
- name: 'İzinsiz Reklam / Tanıtım',
64
- description: 'Yönetimden izin almadan yapılan topluluk, yayıncı veya ürün reklamları.',
65
- duration: 168,
66
- restrictions: ['POST_BAN', 'CHAT_BAN'],
67
- severity: 'medium',
68
- isMajor: false
69
- },
70
- // GÜVENLİK (M3.X)
71
- {
72
- id: 'harassment',
73
- article: 'M3.1',
74
- category: 'GÜVENLİK',
75
- name: 'Kullanıcı Taciz / Rahatsızlık',
76
- description: 'Kullanıcıları sistematik olarak rahatsız etme veya taciz etme.',
77
- duration: 168,
78
- restrictions: ['CHAT_BAN', 'POST_BAN', 'PROFILE_EDIT_BAN'],
79
- severity: 'high',
80
- isMajor: true
81
- },
82
- {
83
- id: 'doxxing',
84
- article: 'M3.2',
85
- category: 'GÜVENLİK',
86
- name: 'Kişisel Veri İhlali / Doxxing',
87
- description: 'Bir kullanıcının gerçek hayat verilerini, adresini veya telefonunu izinsiz paylaşma.',
88
- duration: 0,
89
- restrictions: ['PERMANENT_BAN'],
90
- severity: 'critical',
91
- isMajor: true
92
- },
93
- {
94
- id: 'bug-abuse',
95
- article: 'M3.3',
96
- category: 'GÜVENLİK',
97
- name: 'Sistem Odaklı Hata Kullanımı',
98
- description: 'Platformdaki hataları (bug) bildirmek yerine kendi çıkarı için kullanma.',
99
- duration: 720, // 1 month
100
- restrictions: ['LOGIN_BAN', 'POST_BAN'],
101
- severity: 'high',
102
- isMajor: true
103
- },
104
- // HESAP (M4.X)
105
- {
106
- id: 'fake-identity',
107
- article: 'M4.1',
108
- category: 'HESAP',
109
- name: 'Sahte Kimlik / Taklit',
110
- description: 'Başka bir kullanıcıyı veya yetkiliyi taklit etme.',
111
- duration: 0,
112
- restrictions: ['PERMANENT_BAN'],
113
- severity: 'critical',
114
- isMajor: true
115
- },
116
- {
117
- id: 'hate-speech',
118
- article: 'M4.2',
119
- category: 'HESAP',
120
- name: 'Nefret Söylemi / Değerlere Hakaret',
121
- description: 'Dini, milli veya manevi değerlere yönelik ağır hakaret ve saldırı.',
122
- duration: 0,
123
- restrictions: ['PERMANENT_BAN'],
124
- severity: 'critical',
125
- isMajor: true
126
- },
127
- {
128
- id: 'fraud',
129
- article: 'M4.3',
130
- category: 'HESAP',
131
- name: 'Dolandırıcılık / Sahtekarlık',
132
- description: 'Hizmet veya ürün alımlarında kullanıcıları veya sistemi dolandırma girişimi.',
133
- duration: 0,
134
- restrictions: ['PERMANENT_BAN'],
135
- severity: 'critical',
136
- isMajor: true
137
- },
138
- {
139
- id: 'multi-account',
140
- article: 'M4.4',
141
- category: 'HESAP',
142
- name: 'Çoklu Hesap / Multi Account',
143
- description: 'Yasaklandığı halde farklı hesaplarla sisteme tekrar dahil olma girişimi.',
144
- duration: 0,
145
- restrictions: ['PERMANENT_BAN'],
146
- severity: 'critical',
147
- isMajor: true
148
- }
149
- ];
150
- export const getRestrictionLabel = (type) => {
151
- switch (type) {
152
- case 'CHAT_BAN': return 'Sohbet Yasağı';
153
- case 'POST_BAN': return 'Paylaşım Yasağı';
154
- case 'PROFILE_EDIT_BAN': return 'Profil Düzenleme Yasağı';
155
- case 'LOGIN_BAN': return 'Giriş Yasağı';
156
- case 'PERMANENT_BAN': return 'Kalıcı Yasaklama (Ban)';
157
- default: return 'Bilinmeyen Kısıtlama';
158
- }
159
- };
160
- /**
161
- * Calculates the escalated duration based on the number of previous punishments.
162
- * Formula: base * multiplier
163
- */
164
- export const calculateEscalatedDuration = (baseDuration, punishmentCount) => {
165
- if (baseDuration === 0)
166
- return 0; // Permanent stays permanent
167
- const level = getCommunityComplianceLevel(punishmentCount);
168
- return Math.round(baseDuration * level.multiplier);
169
- };
170
- /**
171
- * Returns the community compliance level details based on involvement count.
172
- */
173
- export const getCommunityComplianceLevel = (count) => {
174
- if (count === 0)
175
- return { label: 'Tam Uyumlu', color: '#10b981', multiplier: 1.0, severity: 'safe' };
176
- if (count < 3)
177
- return { label: 'Biliyor', color: '#3b82f6', multiplier: 1.1, severity: 'low' };
178
- if (count < 6)
179
- return { label: 'Dikkat Etmeli', color: '#eab308', multiplier: 1.3, severity: 'medium' };
180
- if (count < 9)
181
- return { label: 'Rehberlik Gerekli', color: '#f97316', multiplier: 1.6, severity: 'high' };
182
- return { label: 'İnceleme Altında', color: '#ef4444', multiplier: 2.0, severity: 'critical' };
183
- };
1
+ export const PUNISHMENT_RULES = [
2
+ // SOHBET (M1.X)
3
+ {
4
+ id: 'spam-flood',
5
+ article: 'M1.1',
6
+ category: 'SOHBET',
7
+ name: 'Spam / Flood',
8
+ description: 'Sohbet veya yorum alanlarında tekrarlayıcı ve rahatsız edici içerik paylaşımı.',
9
+ duration: 24,
10
+ restrictions: ['CHAT_BAN'],
11
+ severity: 'low',
12
+ isMajor: false
13
+ },
14
+ {
15
+ id: 'inappropriate-lang',
16
+ article: 'M1.2',
17
+ category: 'SOHBET',
18
+ name: 'Uygunsuz Dil / Küfür',
19
+ description: 'Diğer kullanıcılara yönelik hakaret, küfür veya aşağılayıcı ifadeler.',
20
+ duration: 72,
21
+ restrictions: ['CHAT_BAN'],
22
+ severity: 'medium',
23
+ isMajor: true
24
+ },
25
+ {
26
+ id: 'toxic-behavior',
27
+ article: 'M1.3',
28
+ category: 'SOHBET',
29
+ name: 'Toksik Davranış / Kışkırtma',
30
+ description: 'Topluluk huzurunu bozmaya yönelik kışkırtmalar ve huzursuzluk çıkarma.',
31
+ duration: 48,
32
+ restrictions: ['CHAT_BAN'],
33
+ severity: 'low',
34
+ isMajor: false
35
+ },
36
+ // İÇERİK (M2.X)
37
+ {
38
+ id: 'misleading-content',
39
+ article: 'M2.1',
40
+ category: 'İÇERİK',
41
+ name: 'Hatalı Paylaşım / Clickbait',
42
+ description: 'Topluluğu yanıltıcı veya gereksiz (çöp) içerik üretimi.',
43
+ duration: 48,
44
+ restrictions: ['POST_BAN'],
45
+ severity: 'low',
46
+ isMajor: false
47
+ },
48
+ {
49
+ id: 'illegal-content',
50
+ article: 'M2.2',
51
+ category: 'İÇERİK',
52
+ name: 'İllegal / Uygunsuz Paylaşım',
53
+ description: 'Yasal olmayan içeriklerin, korsan yazılım veya uygunsuz medyanın paylaşımı.',
54
+ duration: 0,
55
+ restrictions: ['PERMANENT_BAN'],
56
+ severity: 'critical',
57
+ isMajor: true
58
+ },
59
+ {
60
+ id: 'ad-sharing',
61
+ article: 'M2.3',
62
+ category: 'İÇERİK',
63
+ name: 'İzinsiz Reklam / Tanıtım',
64
+ description: 'Yönetimden izin almadan yapılan topluluk, yayıncı veya ürün reklamları.',
65
+ duration: 168,
66
+ restrictions: ['POST_BAN', 'CHAT_BAN'],
67
+ severity: 'medium',
68
+ isMajor: false
69
+ },
70
+ // GÜVENLİK (M3.X)
71
+ {
72
+ id: 'harassment',
73
+ article: 'M3.1',
74
+ category: 'GÜVENLİK',
75
+ name: 'Kullanıcı Taciz / Rahatsızlık',
76
+ description: 'Kullanıcıları sistematik olarak rahatsız etme veya taciz etme.',
77
+ duration: 168,
78
+ restrictions: ['CHAT_BAN', 'POST_BAN', 'PROFILE_EDIT_BAN'],
79
+ severity: 'high',
80
+ isMajor: true
81
+ },
82
+ {
83
+ id: 'doxxing',
84
+ article: 'M3.2',
85
+ category: 'GÜVENLİK',
86
+ name: 'Kişisel Veri İhlali / Doxxing',
87
+ description: 'Bir kullanıcının gerçek hayat verilerini, adresini veya telefonunu izinsiz paylaşma.',
88
+ duration: 0,
89
+ restrictions: ['PERMANENT_BAN'],
90
+ severity: 'critical',
91
+ isMajor: true
92
+ },
93
+ {
94
+ id: 'bug-abuse',
95
+ article: 'M3.3',
96
+ category: 'GÜVENLİK',
97
+ name: 'Sistem Odaklı Hata Kullanımı',
98
+ description: 'Platformdaki hataları (bug) bildirmek yerine kendi çıkarı için kullanma.',
99
+ duration: 720, // 1 month
100
+ restrictions: ['LOGIN_BAN', 'POST_BAN'],
101
+ severity: 'high',
102
+ isMajor: true
103
+ },
104
+ // HESAP (M4.X)
105
+ {
106
+ id: 'fake-identity',
107
+ article: 'M4.1',
108
+ category: 'HESAP',
109
+ name: 'Sahte Kimlik / Taklit',
110
+ description: 'Başka bir kullanıcıyı veya yetkiliyi taklit etme.',
111
+ duration: 0,
112
+ restrictions: ['PERMANENT_BAN'],
113
+ severity: 'critical',
114
+ isMajor: true
115
+ },
116
+ {
117
+ id: 'hate-speech',
118
+ article: 'M4.2',
119
+ category: 'HESAP',
120
+ name: 'Nefret Söylemi / Değerlere Hakaret',
121
+ description: 'Dini, milli veya manevi değerlere yönelik ağır hakaret ve saldırı.',
122
+ duration: 0,
123
+ restrictions: ['PERMANENT_BAN'],
124
+ severity: 'critical',
125
+ isMajor: true
126
+ },
127
+ {
128
+ id: 'fraud',
129
+ article: 'M4.3',
130
+ category: 'HESAP',
131
+ name: 'Dolandırıcılık / Sahtekarlık',
132
+ description: 'Hizmet veya ürün alımlarında kullanıcıları veya sistemi dolandırma girişimi.',
133
+ duration: 0,
134
+ restrictions: ['PERMANENT_BAN'],
135
+ severity: 'critical',
136
+ isMajor: true
137
+ },
138
+ {
139
+ id: 'multi-account',
140
+ article: 'M4.4',
141
+ category: 'HESAP',
142
+ name: 'Çoklu Hesap / Multi Account',
143
+ description: 'Yasaklandığı halde farklı hesaplarla sisteme tekrar dahil olma girişimi.',
144
+ duration: 0,
145
+ restrictions: ['PERMANENT_BAN'],
146
+ severity: 'critical',
147
+ isMajor: true
148
+ }
149
+ ];
150
+ export const getRestrictionLabel = (type) => {
151
+ switch (type) {
152
+ case 'CHAT_BAN': return 'Sohbet Yasağı';
153
+ case 'POST_BAN': return 'Paylaşım Yasağı';
154
+ case 'PROFILE_EDIT_BAN': return 'Profil Düzenleme Yasağı';
155
+ case 'LOGIN_BAN': return 'Giriş Yasağı';
156
+ case 'PERMANENT_BAN': return 'Kalıcı Yasaklama (Ban)';
157
+ default: return 'Bilinmeyen Kısıtlama';
158
+ }
159
+ };
160
+ /**
161
+ * Calculates the escalated duration based on the number of previous punishments.
162
+ * Formula: base * multiplier
163
+ */
164
+ export const calculateEscalatedDuration = (baseDuration, punishmentCount) => {
165
+ if (baseDuration === 0)
166
+ return 0; // Permanent stays permanent
167
+ const level = getCommunityComplianceLevel(punishmentCount);
168
+ return Math.round(baseDuration * level.multiplier);
169
+ };
170
+ /**
171
+ * Returns the community compliance level details based on involvement count.
172
+ */
173
+ export const getCommunityComplianceLevel = (count) => {
174
+ if (count === 0)
175
+ return { label: 'Tam Uyumlu', color: '#10b981', multiplier: 1.0, severity: 'safe' };
176
+ if (count < 3)
177
+ return { label: 'Biliyor', color: '#3b82f6', multiplier: 1.1, severity: 'low' };
178
+ if (count < 6)
179
+ return { label: 'Dikkat Etmeli', color: '#eab308', multiplier: 1.3, severity: 'medium' };
180
+ if (count < 9)
181
+ return { label: 'Rehberlik Gerekli', color: '#f97316', multiplier: 1.6, severity: 'high' };
182
+ return { label: 'İnceleme Altında', color: '#ef4444', multiplier: 2.0, severity: 'critical' };
183
+ };
184
184
  //# sourceMappingURL=punishmentData.js.map