1use serde::Deserialize;
4use wowlab_engine_macros::{HasFk, HasId};
5
6#[derive(Clone, Debug, Deserialize, HasId)]
8#[allow(
9 non_snake_case,
10 reason = "fields mirror upstream DBC CSV headers exactly"
11)]
12pub struct ManifestInterfaceDataRow {
13 pub ID: i32,
14 pub FilePath: String,
15 pub FileName: String,
16}
17
18#[derive(Clone, Debug, Deserialize, HasId)]
20#[allow(
21 non_snake_case,
22 reason = "fields mirror upstream DBC CSV headers exactly"
23)]
24pub struct DifficultyRow {
25 pub ID: i32,
26 pub Name_lang: Option<String>,
27 pub InstanceType: i32,
28 pub OrderIndex: i32,
29 pub OldEnumValue: i32,
30 pub FallbackDifficultyID: i32,
31 pub MinPlayers: i32,
32 pub MaxPlayers: i32,
33 pub Flags: i32,
34 pub ItemContext: i32,
35 pub ToggleDifficultyID: i32,
36 pub GroupSizeHealthCurveID: i32,
37 pub GroupSizeDmgCurveID: i32,
38 pub GroupSizeSpellPointsCurveID: i32,
39 #[serde(rename = "Field_1_15_4_56400_013")]
40 pub Field: i32,
41}
42
43#[derive(Clone, Debug, Deserialize, HasId)]
45#[allow(
46 non_snake_case,
47 reason = "fields mirror upstream DBC CSV headers exactly"
48)]
49pub struct UiTextureAtlasElementRow {
50 pub Name: String,
51 pub ID: i32,
52}
53
54#[derive(Clone, Debug, Deserialize, HasFk)]
56#[allow(
57 non_snake_case,
58 reason = "fields mirror upstream DBC CSV headers exactly"
59)]
60#[fk_field = "ItemID"]
61pub struct JournalEncounterItemRow {
62 pub ID: i32,
63 pub JournalEncounterID: i32,
64 pub ItemID: i32,
65 pub DifficultyMask: i32,
66 pub FactionMask: i32,
67 pub Flags: i32,
68 pub WorldStateExpressionID: i32,
69}
70
71#[derive(Clone, Debug, Deserialize, HasFk)]
73#[allow(
74 non_snake_case,
75 reason = "fields mirror upstream DBC CSV headers exactly"
76)]
77#[fk_field = "JournalEncounterID"]
78pub struct JournalEncounterCreatureRow {
79 pub Name_lang: Option<String>,
80 pub Description_lang: Option<String>,
81 pub ID: i32,
82 pub JournalEncounterID: i32,
83 pub CreatureDisplayInfoID: i32,
84 pub FileDataID: i32,
85 pub OrderIndex: i32,
86 pub UiModelSceneID: i32,
87}
88
89#[derive(Clone, Debug, Deserialize, HasId)]
91#[allow(
92 non_snake_case,
93 reason = "fields mirror upstream DBC CSV headers exactly"
94)]
95pub struct JournalEncounterRow {
96 pub Name_lang: Option<String>,
97 pub Description_lang: Option<String>,
98 pub Map_0: f32,
99 pub Map_1: f32,
100 pub ID: i32,
101 pub JournalInstanceID: i32,
102 pub DungeonEncounterID: i32,
103 pub OrderIndex: i32,
104 pub FirstSectionID: i32,
105 pub UiMapID: i32,
106 pub MapDisplayConditionID: i32,
107 pub Flags: i32,
108 pub DifficultyMask: i32,
109}
110
111#[derive(Clone, Debug, Deserialize, HasId)]
113#[allow(
114 non_snake_case,
115 reason = "fields mirror upstream DBC CSV headers exactly"
116)]
117pub struct DungeonEncounterRow {
118 pub ID: i32,
119 #[serde(rename = "ItemSequenceLevel")]
120 pub boss_tier: i32,
121}
122
123#[derive(Clone, Debug, Deserialize, HasId)]
125#[allow(
126 non_snake_case,
127 reason = "fields mirror upstream DBC CSV headers exactly"
128)]
129pub struct JournalInstanceRow {
130 pub ID: i32,
131 pub Name_lang: Option<String>,
132 pub Description_lang: Option<String>,
133 pub MapID: i32,
134 pub BackgroundFileDataID: i32,
135 pub ButtonFileDataID: i32,
136 pub ButtonSmallFileDataID: i32,
137 pub LoreFileDataID: i32,
138 pub Flags: i32,
139 pub AreaID: i32,
140 pub CovenantID: i32,
141}
142
143#[derive(Clone, Debug, Deserialize, HasId)]
145#[allow(
146 non_snake_case,
147 reason = "fields mirror upstream DBC CSV headers exactly"
148)]
149pub struct GlobalColorRow {
150 pub ID: i32,
151 pub LuaConstantName: String,
152 pub Color: i32,
153}
154
155#[derive(Clone, Debug, Deserialize, HasId)]
157#[allow(
158 non_snake_case,
159 reason = "fields mirror upstream DBC CSV headers exactly"
160)]
161pub struct GlobalStringsRow {
162 pub ID: i32,
163 pub BaseTag: String,
164 pub TagText_lang: Option<String>,
165 pub Flags: i32,
166}
167
168#[derive(Clone, Debug, Deserialize, HasId)]
170#[allow(
171 non_snake_case,
172 reason = "fields mirror upstream DBC CSV headers exactly"
173)]
174pub struct JournalTierRow {
175 pub ID: i32,
176 pub Name_lang: Option<String>,
177 pub Expansion: i32,
178 pub PlayerConditionID: i32,
179}
180
181#[derive(Clone, Debug, Deserialize, HasFk)]
183#[allow(
184 non_snake_case,
185 reason = "fields mirror upstream DBC CSV headers exactly"
186)]
187#[fk_field = "JournalInstanceID"]
188pub struct JournalTierXInstanceRow {
189 pub ID: i32,
190 pub JournalTierID: i32,
191 pub JournalInstanceID: i32,
192 pub OrderIndex: i32,
193}
194
195#[derive(Clone, Debug, Deserialize, HasId)]
197#[allow(
198 non_snake_case,
199 reason = "fields mirror upstream DBC CSV headers exactly"
200)]
201pub struct MapRow {
202 pub ID: i32,
203 pub Directory: String,
204 pub MapName_lang: Option<String>,
205 pub MapType: i32,
206 pub InstanceType: i32,
207 pub ExpansionID: i32,
208}
209
210#[derive(Clone, Debug, Deserialize, HasId)]
212#[allow(
213 non_snake_case,
214 reason = "fields mirror upstream DBC CSV headers exactly"
215)]
216pub struct MapChallengeModeRow {
217 pub Name_lang: Option<String>,
218 pub ID: i32,
219 pub MapID: i32,
220 pub ExpansionLevel: i32,
221}
222
223#[derive(Clone, Debug, Deserialize, HasFk)]
225#[allow(
226 non_snake_case,
227 reason = "fields mirror upstream DBC CSV headers exactly"
228)]
229#[fk_field = "MythicPlusSeasonID"]
230pub struct MythicPlusSeasonRewardLevelsRow {
231 pub ID: i32,
232 pub MythicPlusSeasonID: i32,
233 pub ActivityTierID: i32,
234 pub DifficultyLevel: i32,
235 pub WeeklyRewardLevel: i32,
236 pub EndOfRunRewardLevel: i32,
237}
238
239#[derive(Clone, Debug, Deserialize, HasId)]
241#[allow(
242 non_snake_case,
243 reason = "fields mirror upstream DBC CSV headers exactly"
244)]
245pub struct PvpSeasonRow {
246 pub ID: i32,
247 pub MilestoneSeason: i32,
248 pub AllianceAchievementID: i32,
249 pub HordeAchievementID: i32,
250}
251
252#[derive(Clone, Debug, Deserialize, HasFk)]
254#[allow(
255 non_snake_case,
256 reason = "fields mirror upstream DBC CSV headers exactly"
257)]
258#[fk_field = "PvpSeasonID"]
259pub struct PvpSeasonRewardLevelsRow {
260 pub ID: i32,
261 pub Tier: i32,
262 pub EndOfMatchILvl: i32,
263 pub WeeklyCacheILvl: i32,
264 pub PvpSeasonID: i32,
265}
266
267#[derive(Clone, Debug, Deserialize, HasId)]
269#[allow(
270 non_snake_case,
271 reason = "fields mirror upstream DBC CSV headers exactly"
272)]
273pub struct PvpTierRow {
274 pub Name_lang: Option<String>,
275 pub ID: i32,
276 pub MinRating: i32,
277 pub MaxRating: i32,
278 pub PrevTier: i32,
279 pub NextTier: i32,
280 pub BracketID: i32,
281 pub Rank: i32,
282 pub RankIcon: i32,
283}
284
285#[derive(Clone, Debug, Deserialize, HasId)]
287#[allow(
288 non_snake_case,
289 reason = "fields mirror upstream DBC CSV headers exactly"
290)]
291pub struct MythicPlusSeasonRow {
292 pub ID: i32,
293 pub MilestoneSeason: i32,
294 pub StartTimeEvent: i32,
295 pub ExpansionLevel: i32,
296 pub HeroicLFGDungeonMinGear: i32,
297}
298
299#[derive(Clone, Debug, Deserialize, HasFk)]
301#[allow(
302 non_snake_case,
303 reason = "fields mirror upstream DBC CSV headers exactly"
304)]
305#[fk_field = "DisplaySeasonID"]
306pub struct MythicPlusSeasonTrackedMapRow {
307 pub ID: i32,
308 pub MapChallengeModeID: i32,
309 pub DisplaySeasonID: i32,
310}
311
312#[derive(Clone, Debug, Deserialize, HasFk)]
314#[allow(
315 non_snake_case,
316 reason = "fields mirror upstream DBC CSV headers exactly"
317)]
318#[fk_field = "DisplaySeasonID"]
319pub struct MythicPlusSeasonTrackedAffixRow {
320 pub ID: i32,
321 pub KeystoneAffixID: i32,
322 pub BonusRating: i32,
323 pub DisplaySeasonID: i32,
324}
325
326#[derive(Clone, Debug, Deserialize, HasFk)]
328#[allow(
329 non_snake_case,
330 reason = "fields mirror upstream DBC CSV headers exactly"
331)]
332#[fk_field = "DisplaySeasonID"]
333pub struct MythicPlusSeasonKeyFloorRow {
334 pub ID: i32,
335 pub KeyFloor: i32,
336 pub PlayerConditionID: i32,
337 pub DisplaySeasonID: i32,
338}
339
340#[derive(Clone, Debug, Deserialize, HasId)]
342#[allow(
343 non_snake_case,
344 reason = "fields mirror upstream DBC CSV headers exactly"
345)]
346pub struct DisplaySeasonRow {
347 pub ID: i32,
348 pub Season: i32,
349 pub ExpansionID: i32,
350 pub DelvesSeasonID: i32,
351 #[serde(rename = "Field_9_2_0_42174_000_lang")]
352 pub display_name_lang: Option<String>,
353}
354
355#[derive(Clone, Debug, Deserialize, HasId)]
357#[allow(
358 non_snake_case,
359 reason = "fields mirror upstream DBC CSV headers exactly"
360)]
361pub struct DelvesSeasonRow {
362 pub ID: i32,
363 pub FactionID: i32,
364}