@armoyu/ui 1.0.0 → 1.0.1

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 (149) hide show
  1. package/dist/app/layout.d.ts.map +1 -1
  2. package/dist/app/layout.js +16 -13
  3. package/dist/app/layout.js.map +1 -1
  4. package/dist/components/Button.d.ts +7 -7
  5. package/dist/components/Button.js +15 -15
  6. package/dist/components/GenderStatsBar.d.ts +5 -5
  7. package/dist/components/GenderStatsBar.js +7 -7
  8. package/dist/components/RollingNumber.js +3 -3
  9. package/dist/components/RollingNumber.js.map +1 -1
  10. package/dist/components/Slider.d.ts +10 -10
  11. package/dist/components/Slider.js +35 -35
  12. package/dist/components/StatsGrid.d.ts +5 -5
  13. package/dist/components/StatsGrid.js +13 -13
  14. package/dist/components/ViewModeToggle.d.ts +7 -7
  15. package/dist/components/ViewModeToggle.js +9 -9
  16. package/dist/components/modules/auth/Dashboard.d.ts +1 -1
  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.d.ts +24 -24
  21. package/dist/components/modules/auth/PostCard.js +112 -112
  22. package/dist/components/modules/auth/PostInteractionsModal.d.ts +11 -11
  23. package/dist/components/modules/auth/PostInteractionsModal.js +12 -12
  24. package/dist/components/modules/auth/RepostModal.d.ts +21 -21
  25. package/dist/components/modules/auth/RepostModal.js +75 -75
  26. package/dist/components/modules/auth/SidebarLeft.d.ts +1 -1
  27. package/dist/components/modules/auth/SidebarLeft.js +40 -40
  28. package/dist/components/modules/auth/Stories.d.ts +1 -1
  29. package/dist/components/modules/auth/Stories.js +15 -15
  30. package/dist/components/modules/auth/StoryViewer.d.ts +9 -9
  31. package/dist/components/modules/auth/StoryViewer.js +47 -47
  32. package/dist/components/modules/chat/ChatContainer.d.ts +1 -1
  33. package/dist/components/modules/chat/ChatContainer.js +196 -196
  34. package/dist/components/modules/chat/ChatInput.d.ts +4 -4
  35. package/dist/components/modules/chat/ChatInput.js +30 -30
  36. package/dist/components/modules/chat/ChatList.d.ts +6 -6
  37. package/dist/components/modules/chat/ChatList.js +51 -51
  38. package/dist/components/modules/chat/ChatMessage.d.ts +11 -11
  39. package/dist/components/modules/chat/ChatMessage.js +6 -6
  40. package/dist/components/modules/chat/ChatNotes.d.ts +1 -1
  41. package/dist/components/modules/chat/ChatNotes.js +11 -11
  42. package/dist/components/modules/community/GroupHeader.d.ts +10 -10
  43. package/dist/components/modules/community/GroupHeader.js +17 -17
  44. package/dist/components/modules/community/GroupMenu.d.ts +9 -9
  45. package/dist/components/modules/community/GroupMenu.js +16 -16
  46. package/dist/components/modules/community/SchoolCard.d.ts +6 -6
  47. package/dist/components/modules/community/SchoolCard.js +7 -7
  48. package/dist/components/modules/community/SurveyCard.d.ts +6 -6
  49. package/dist/components/modules/community/SurveyCard.js +35 -35
  50. package/dist/components/modules/forum/ForumBoard.d.ts +16 -16
  51. package/dist/components/modules/forum/ForumBoard.js +6 -6
  52. package/dist/components/modules/forum/ForumPost.d.ts +13 -13
  53. package/dist/components/modules/forum/ForumPost.js +5 -5
  54. package/dist/components/modules/forum/NewTopicModal.d.ts +7 -7
  55. package/dist/components/modules/forum/NewTopicModal.js +26 -26
  56. package/dist/components/modules/forum/TopicItem.d.ts +15 -15
  57. package/dist/components/modules/forum/TopicItem.js +6 -6
  58. package/dist/components/modules/galleries/GalleryCard.d.ts +9 -9
  59. package/dist/components/modules/galleries/GalleryCard.js +5 -5
  60. package/dist/components/modules/giveaways/GiveawayCard.d.ts +9 -9
  61. package/dist/components/modules/giveaways/GiveawayCard.js +6 -6
  62. package/dist/components/modules/groups/ApplicationModal.d.ts +7 -7
  63. package/dist/components/modules/groups/ApplicationModal.js +27 -27
  64. package/dist/components/modules/groups/GroupCard.d.ts +12 -12
  65. package/dist/components/modules/groups/GroupCard.js +6 -6
  66. package/dist/components/modules/guest/Introduction.d.ts +1 -1
  67. package/dist/components/modules/guest/Introduction.js +13 -13
  68. package/dist/components/modules/magaza/BackToStore.d.ts +1 -1
  69. package/dist/components/modules/magaza/BackToStore.js +10 -10
  70. package/dist/components/modules/magaza/StoreHeader.d.ts +5 -5
  71. package/dist/components/modules/magaza/StoreHeader.js +8 -8
  72. package/dist/components/modules/news/NewsCard.d.ts +11 -11
  73. package/dist/components/modules/news/NewsCard.js +6 -6
  74. package/dist/components/modules/news/NewsComments.d.ts +1 -1
  75. package/dist/components/modules/news/NewsComments.js +52 -52
  76. package/dist/components/modules/profile/CloudStorageModal.d.ts +8 -8
  77. package/dist/components/modules/profile/CloudStorageModal.js +31 -31
  78. package/dist/components/modules/profile/EditProfileModal.d.ts +8 -8
  79. package/dist/components/modules/profile/EditProfileModal.js +27 -27
  80. package/dist/components/modules/profile/ProfileContent.d.ts +4 -4
  81. package/dist/components/modules/profile/ProfileContent.js +70 -70
  82. package/dist/components/modules/profile/ProfileHeader.d.ts +7 -7
  83. package/dist/components/modules/profile/ProfileHeader.js +19 -19
  84. package/dist/components/modules/profile/ProfileStats.js +1 -1
  85. package/dist/components/modules/profile/ProfileStats.js.map +1 -1
  86. package/dist/components/modules/profile/TeamSelectorModal.d.ts +10 -10
  87. package/dist/components/modules/profile/TeamSelectorModal.js +16 -16
  88. package/dist/components/modules/stations/StationCard.d.ts +2 -2
  89. package/dist/components/modules/stations/StationCard.js +25 -25
  90. package/dist/components/modules/stations/StationQRModal.d.ts +9 -9
  91. package/dist/components/modules/stations/StationQRModal.js +12 -12
  92. package/dist/components/shared/FloatingChatButton.d.ts +4 -4
  93. package/dist/components/shared/FloatingChatButton.js +20 -20
  94. package/dist/components/shared/Footer.d.ts +1 -1
  95. package/dist/components/shared/Footer.js +9 -9
  96. package/dist/components/shared/Header.d.ts +1 -1
  97. package/dist/components/shared/Header.js +97 -97
  98. package/dist/components/shared/LoginModal.d.ts +4 -4
  99. package/dist/components/shared/LoginModal.js +69 -69
  100. package/dist/components/shared/MainLayoutWrapper.d.ts +3 -3
  101. package/dist/components/shared/MainLayoutWrapper.js +7 -7
  102. package/dist/components/shared/PageWidth.d.ts +5 -5
  103. package/dist/components/shared/PageWidth.js +13 -13
  104. package/dist/context/AuthContext.d.ts +18 -18
  105. package/dist/context/AuthContext.js +74 -74
  106. package/dist/context/CartContext.d.ts +16 -16
  107. package/dist/context/CartContext.js +63 -63
  108. package/dist/context/ChatContext.d.ts +12 -12
  109. package/dist/context/ChatContext.js +17 -17
  110. package/dist/context/LayoutContext.d.ts +10 -10
  111. package/dist/context/LayoutContext.js +16 -16
  112. package/dist/context/SocketContext.d.ts +12 -12
  113. package/dist/context/SocketContext.js +30 -30
  114. package/dist/context/ThemeContext.d.ts +10 -10
  115. package/dist/context/ThemeContext.js +39 -39
  116. package/dist/index.d.ts +65 -65
  117. package/dist/index.js +80 -80
  118. package/dist/lib/constants/educationData.d.ts +7 -7
  119. package/dist/lib/constants/educationData.js +117 -117
  120. package/dist/lib/constants/punishmentData.d.ts +29 -29
  121. package/dist/lib/constants/punishmentData.js +183 -183
  122. package/dist/lib/constants/seedData.d.ts +164 -164
  123. package/dist/lib/constants/seedData.js +694 -694
  124. package/dist/lib/constants/stationData.d.ts +13 -13
  125. package/dist/lib/constants/stationData.js +166 -166
  126. package/dist/lib/constants/surveyData.d.ts +2 -2
  127. package/dist/lib/constants/surveyData.js +49 -49
  128. package/dist/lib/constants/teamData.d.ts +12 -12
  129. package/dist/lib/constants/teamData.js +65 -65
  130. package/dist/types/stats.d.ts +17 -17
  131. package/dist/types/stats.js +1 -1
  132. package/next.config.ts +13 -13
  133. package/package.json +45 -46
  134. package/postcss.config.js +6 -6
  135. package/src/app/layout.tsx +67 -64
  136. package/src/app/page.tsx +101 -101
  137. package/src/components/RollingNumber.tsx +3 -3
  138. package/src/components/modules/profile/ProfileStats.tsx +4 -4
  139. package/src/components/showcase/CommunityTab.tsx +22 -22
  140. package/src/components/showcase/CorporateTab.tsx +38 -38
  141. package/src/components/showcase/GeneralTab.tsx +41 -41
  142. package/src/components/showcase/MessagesTab.tsx +26 -26
  143. package/src/components/showcase/ProfileTab.tsx +20 -20
  144. package/src/components/showcase/ShopTab.tsx +24 -24
  145. package/src/components/showcase/SocialTab.tsx +28 -28
  146. package/src/globals.css +187 -187
  147. package/src/lib/utils/numberFormat.ts +16 -16
  148. package/src/lib/utils/odpUtils.ts +51 -51
  149. package/src/types/index.ts +1 -1
@@ -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