-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathIDatabase.cs
More file actions
596 lines (548 loc) · 24.9 KB
/
Copy pathIDatabase.cs
File metadata and controls
596 lines (548 loc) · 24.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
#nullable enable
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using Arrowgene.Ddon.Database.Model;
using Arrowgene.Ddon.Database.Sql.Core.Migration;
using Arrowgene.Ddon.Shared.Entity;
using Arrowgene.Ddon.Shared.Entity.Structure;
using Arrowgene.Ddon.Shared.Model;
using Arrowgene.Ddon.Shared.Model.BattleContent;
using Arrowgene.Ddon.Shared.Model.Clan;
using Arrowgene.Ddon.Shared.Model.Quest;
namespace Arrowgene.Ddon.Database
{
public interface IDatabase
{
void Execute(string sql);
void Execute(DbConnection conn, string sql);
bool ExecuteInTransaction(Action<DbConnection> action);
int ExecuteNonQuery(DbConnection conn, string query, Action<DbCommand> action);
void ExecuteReader(
DbConnection conn,
string sql,
Action<DbCommand> commandAction,
Action<DbDataReader> readAction
);
// Generic functions for getting/setting
void AddParameter(DbCommand command, string name, object? value, DbType type);
void AddParameter(DbCommand command, string name, string value);
void AddParameter(DbCommand command, string name, Int32 value);
void AddParameter(DbCommand command, string name, float value);
void AddParameter(DbCommand command, string name, byte value);
void AddParameter(DbCommand command, string name, UInt16 value);
void AddParameter(DbCommand command, string name, UInt32 value);
void AddParameter(DbCommand command, string name, byte[] value);
void AddParameter(DbCommand command, string name, bool value);
string? GetStringNullable(DbDataReader reader, int ordinal);
byte[]? GetBytesNullable(DbDataReader reader, int ordinal, int size);
int GetInt32(DbDataReader reader, string column);
uint GetUInt32(DbDataReader reader, string column);
byte GetByte(DbDataReader reader, string column);
short GetInt16(DbDataReader reader, string column);
ushort GetUInt16(DbDataReader reader, string column);
long GetInt64(DbDataReader reader, string column);
ulong GetUInt64(DbDataReader reader, string column);
float GetFloat(DbDataReader reader, string column);
string GetString(DbDataReader reader, string column);
bool GetBoolean(DbDataReader reader, string column);
byte[] GetBytes(DbDataReader reader, string column, int size);
/// <summary>
/// Return true if database was created, or false if not.
/// </summary>
bool CreateDatabase();
bool MigrateDatabase(DatabaseMigrator migrator, uint toVersion);
// Meta
bool CreateMeta(DatabaseMeta meta);
bool SetMeta(DatabaseMeta meta);
DatabaseMeta GetMeta();
// Account
Account CreateAccount(string name, string mail, string hash);
Account SelectAccountById(int accountId);
Account SelectAccountByName(string accountName);
Account SelectAccountByLoginToken(string loginToken);
bool UpdateAccount(Account account);
bool DeleteAccount(int accountId);
Storages SelectAllStoragesByCharacterId(uint characterId);
// CharacterCommon
bool UpdateCharacterCommonBaseInfo(
CharacterCommon common,
DbConnection? connectionIn = null
);
bool UpdateEditInfo(CharacterCommon character);
bool UpdateStatusInfo(CharacterCommon character);
// Character
bool CreateCharacter(Character character);
Character SelectCharacter(uint characterId);
List<Character> SelectCharactersByAccountId(int accountId, GameMode gameMode);
List<Character> SelectAllCharacters();
List<Character> SelectAllCharacters(DbConnection conn);
bool DeleteCharacter(uint characterId);
bool UpdateCharacterBaseInfo(Character character);
bool UpdateCharacterMatchingProfile(Character character);
bool UpdateCharacterArisenProfile(Character character);
bool UpdateMyPawnSlot(uint characterId, uint num);
bool UpdateRentalPawnSlot(uint characterId, uint num);
bool UpdateCharacterBinaryData(uint characterId, byte[] data);
void CreateItems(DbConnection conn, Character character);
CDataCharacterSearchParam SelectCharacterNameById(uint characterId);
CDataCharacterSearchParam SelectCharacterNameById(
DbConnection connection,
uint characterId
);
// Pawn
bool CreatePawn(Pawn pawn);
Pawn SelectPawn(uint pawnId);
Pawn SelectPawn(DbConnection connection, uint pawnId);
List<Pawn> SelectPawnsByCharacterId(uint characterId);
List<Pawn> SelectPawnsByCharacterId(DbConnection conn, uint characterId);
List<uint> SelectOfficialPawns();
List<uint> SelectAllPlayerPawns(uint limit = 100);
List<uint> SelectAllPlayerPawns(DbConnection connection, uint limit = 100);
List<CDataRegisterdPawnList> SelectRegisteredPawns(
Character searchingCharacter,
CDataPawnSearchParameter searchParams
);
List<CDataRegisterdPawnList> SelectRegisteredPawns(
DbConnection conn,
Character searchingCharacter,
CDataPawnSearchParameter searchParams
);
bool DeletePawn(uint pawnId);
bool UpdatePawnBaseInfo(Pawn pawn);
uint GetPawnOwnerCharacterId(uint pawnId);
// Pawn Training Status
bool ReplacePawnTrainingStatus(uint pawnId, JobId job, byte[] pawnTrainingStatus);
bool InsertPawnTrainingStatus(uint pawnId, JobId job, byte[] pawnTrainingStatus);
bool InsertIfNotExistsPawnTrainingStatus(uint pawnId, JobId job, byte[] pawnTrainingStatus);
bool UpdatePawnTrainingStatus(uint pawnId, JobId job, byte[] pawnTrainingStatus);
#region Pawn craft progress
bool ReplacePawnCraftProgress(CraftProgress craftProgress);
bool InsertPawnCraftProgress(CraftProgress craftProgress, DbConnection? connectionIn = null);
bool InsertIfNotExistsPawnCraftProgress(CraftProgress craftProgress);
bool UpdatePawnCraftProgress(CraftProgress craftProgress);
bool DeletePawnCraftProgress(uint craftCharacterId, uint craftLeadPawnId);
CraftProgress SelectPawnCraftProgress(uint craftCharacterId, uint craftLeadPawnId);
#endregion
// Pawn Sp Skills
bool InsertSpSkill(uint pawnId, JobId job, CDataSpSkill spSkill);
bool DeleteSpSkill(uint pawnId, JobId job, byte spSkillId);
// CharacterJobData
bool ReplaceCharacterJobData(uint commonId, CDataCharacterJobData replacedCharacterJobData, DbConnection? connectionIn = null);
bool UpdateCharacterJobData(uint commonId, CDataCharacterJobData updatedCharacterJobData);
// Wallet Points
bool InsertWalletPoint(uint characterId, CDataWalletPoint walletPoint);
bool ReplaceWalletPoint(uint characterId, CDataWalletPoint walletPoint);
bool UpdateWalletPoint(
uint characterId,
CDataWalletPoint updatedWalletPoint,
DbConnection? connectionIn = null
);
bool DeleteWalletPoint(uint characterId, WalletType type);
// Released Warp Points
List<ReleasedWarpPoint> SelectReleasedWarpPoints(uint characterId);
bool InsertIfNotExistsReleasedWarpPoint(
uint characterId,
ReleasedWarpPoint ReleasedWarpPoint
);
bool InsertIfNotExistsReleasedWarpPoints(
uint characterId,
List<ReleasedWarpPoint> ReleasedWarpPoint
);
bool InsertReleasedWarpPoint(uint characterId, ReleasedWarpPoint ReleasedWarpPoint);
bool ReplaceReleasedWarpPoint(uint characterId, ReleasedWarpPoint ReleasedWarpPoint);
bool UpdateReleasedWarpPoint(uint characterId, ReleasedWarpPoint updatedReleasedWarpPoint);
bool DeleteReleasedWarpPoint(uint characterId, uint warpPointId);
//Storage
Item SelectStorageItemByUId(string uId, DbConnection? connectionIn = null);
bool InsertStorage(uint characterId, StorageType storageType, Storage storage);
bool UpdateStorage(uint characterId, StorageType storageType, Storage storage);
bool DeleteStorage(uint characterId, StorageType storageType);
// Storage Item
bool InsertStorageItem(
uint characterId,
StorageType storageType,
ushort slotNo,
uint itemNum,
Item item,
DbConnection? connectionIn = null
);
bool ReplaceStorageItem(
uint characterId,
StorageType storageType,
ushort slotNo,
uint itemNum,
Item item,
DbConnection? connectionIn = null
);
bool DeleteStorageItem(
uint characterId,
StorageType storageType,
ushort slotNo,
DbConnection? connectionIn = null
);
bool UpdateStorageItem(
uint characterId,
StorageType storageType,
ushort slotNo,
uint itemNum,
Item item,
DbConnection? connectionIn = null
);
public void DeleteAllStorageItems(DbConnection connection, uint characterId);
bool UpdateItemEquipPoints(string itemUID, uint EquipPoints);
// Equip
bool InsertEquipItem(
uint commonId,
JobId job,
EquipType equipType,
byte equipSlot,
string itemUId
);
bool ReplaceEquipItem(
uint commonId,
JobId job,
EquipType equipType,
byte equipSlot,
string itemUId,
DbConnection? connectionIn = null
);
bool UpdateEquipItem(
uint commonId,
JobId job,
EquipType equipType,
byte equipSlot,
string itemUId
);
bool DeleteEquipItem(
uint commonId,
JobId job,
EquipType equipType,
byte equipSlot,
DbConnection? connectionIn = null
);
void DeleteAllEquipItems(uint commonId, DbConnection? connectionIn = null);
List<EquipItem> SelectEquipItemByCharacter(uint characterCommonId);
// Job Items
bool InsertEquipJobItem(string itemUId, uint commonId, JobId job, ushort slotNo);
bool ReplaceEquipJobItem(string itemUId, uint commonId, JobId job, ushort slotNo);
bool DeleteEquipJobItem(uint commonId, JobId job, ushort slotNo);
// CustomSkills
bool InsertLearnedCustomSkill(uint commonId, CustomSkill skill);
bool UpdateLearnedCustomSkill(uint commonId, CustomSkill updatedSkill);
bool InsertEquippedCustomSkill(uint commonId, byte slotNo, CustomSkill skill);
bool ReplaceEquippedCustomSkill(uint commonId, byte slotNo, CustomSkill skill);
bool UpdateEquippedCustomSkill(
uint commonId,
JobId oldJob,
byte oldSlotNo,
byte slotNo,
CustomSkill skill
);
bool DeleteEquippedCustomSkill(uint commonId, JobId job, byte slotNo);
// Abilities
bool InsertLearnedAbility(uint commonId, Ability ability);
bool UpdateLearnedAbility(uint commonId, Ability ability);
bool InsertEquippedAbility(
uint commonId,
JobId equipptedToJob,
byte slotNo,
Ability ability
);
bool ReplaceEquippedAbility(
uint commonId,
JobId equipptedToJob,
byte slotNo,
Ability ability
);
bool ReplaceEquippedAbilities(uint commonId, JobId equippedToJob, List<Ability> abilities);
bool UpdateEquippedAbility(
uint commonId,
JobId oldEquippedToJob,
byte oldSlotNo,
JobId equipptedToJob,
byte slotNo,
Ability ability
);
bool DeleteEquippedAbility(uint commonId, JobId equippedToJob, byte slotNo);
bool DeleteEquippedAbilities(uint commonId, JobId equippedToJob);
bool ReplaceAbilityPreset(uint characterId, CDataPresetAbilityParam preset);
bool UpdateAbilityPreset(uint characterId, CDataPresetAbilityParam preset);
bool InsertSecretAbilityUnlock(uint commonId, SecretAbility secretAbility);
List<SecretAbility> SelectAllUnlockedSecretAbilities(uint commonId);
// (Learned) Normal Skills / Learned Core Skills
bool InsertIfNotExistsNormalSkillParam(
uint commonId,
CDataNormalSkillParam normalSkillParam
);
bool InsertNormalSkillParam(uint commonId, CDataNormalSkillParam normalSkillParam);
bool ReplaceNormalSkillParam(uint commonId, CDataNormalSkillParam normalSkillParam);
bool UpdateNormalSkillParam(
uint commonId,
JobId job,
uint skillNo,
CDataNormalSkillParam normalSkillParam
);
bool DeleteNormalSkillParam(uint commonId, JobId job, uint skillNo);
List<CDataNormalSkillParam> SelectNormalSkillParam(uint commonId, JobId job);
// Shortcut
bool InsertShortcut(uint characterId, CDataShortCut shortcut);
bool ReplaceShortcut(
uint characterId,
CDataShortCut shortcut,
DbConnection? connectionIn = null
);
bool UpdateShortcut(
uint characterId,
uint oldPageNo,
uint oldButtonNo,
CDataShortCut updatedShortcut
);
bool DeleteShortcut(uint characterId, uint pageNo, uint buttonNo);
// CommunicationShortcut
bool InsertCommunicationShortcut(
uint characterId,
CDataCommunicationShortCut communicationShortcut
);
bool ReplaceCommunicationShortcut(
uint characterId,
CDataCommunicationShortCut communicationShortcut,
DbConnection? connectionIn = null
);
bool UpdateCommunicationShortcut(
uint characterId,
uint oldPageNo,
uint oldButtonNo,
CDataCommunicationShortCut updatedCommunicationShortcut
);
bool DeleteCommunicationShortcut(uint characterId, uint pageNo, uint buttonNo);
// GameToken
bool SetToken(GameToken token);
GameToken SelectTokenByAccountId(int accountId);
GameToken SelectToken(string tokenStr);
bool DeleteTokenByAccountId(int accountId);
bool DeleteToken(string token);
// Connections
bool InsertConnection(Connection connection);
List<Connection> SelectConnectionsByAccountId(int accountId);
bool DeleteConnection(int serverId, int accountId);
bool DeleteConnectionsByAccountId(int accountId);
bool DeleteConnectionsByServerId(int serverId);
// ContactList
int InsertContact(
uint requestingCharacterId,
uint requestedCharacterId,
ContactListStatus status,
ContactListType type,
bool requesterFavorite,
bool requestedFavorite
);
int UpdateContact(
uint requestingCharacterId,
uint requestedCharacterId,
ContactListStatus status,
ContactListType type,
bool requesterFavorite,
bool requestedFavorite
);
int DeleteContact(uint requestingCharacterId, uint requestedCharacterId);
int DeleteContactById(uint id);
List<ContactListEntity> SelectContactsByCharacterId(uint characterId);
ContactListEntity SelectContactsByCharacterId(uint characterId1, uint characterId2);
ContactListEntity SelectContactListById(uint id);
// Dragon Force Augmentation
bool InsertIfNotExistsDragonForceAugmentation(
uint commonId,
uint elementId,
uint pageNo,
uint groupNo,
uint indexNo
);
List<CDataReleaseOrbElement> SelectOrbReleaseElementFromDragonForceAugmentation(
uint commonId
);
bool InsertGainExtendParam(uint commonId, CDataOrbGainExtendParam Param);
bool UpdateOrbGainExtendParam(uint commonId, CDataOrbGainExtendParam Param);
CDataOrbGainExtendParam SelectOrbGainExtendParam(uint commonId);
// Bazaar
ulong InsertBazaarExhibition(BazaarExhibition exhibition);
int UpdateBazaarExhibiton(BazaarExhibition exhibition);
int DeleteBazaarExhibition(ulong bazaarId);
BazaarExhibition SelectBazaarExhibitionByBazaarId(ulong bazaarId);
List<BazaarExhibition> FetchCharacterBazaarExhibitions(uint characterId);
List<BazaarExhibition> SelectActiveBazaarExhibitionsByItemIdExcludingOwn(
uint itemId,
uint excludedCharacterId
);
List<BazaarExhibition> SelectActiveBazaarExhibitionsByItemIdsExcludingOwn(
List<uint> itemIds,
uint excludedCharacterId
);
// Rewards
bool InsertBoxRewardItems(uint commonId, QuestBoxRewards rewards);
bool DeleteBoxRewardItem(uint commonId, uint uniqId);
List<QuestBoxRewards> SelectBoxRewardItems(uint commonId);
// Completed Quests
List<CompletedQuest> GetCompletedQuestsByType(uint characterCommonId, QuestType questType);
CompletedQuest GetCompletedQuestsById(uint characterCommonId, QuestId questId);
bool InsertIfNotExistCompletedQuest(
uint characterCommonId,
QuestId questId,
QuestType questType
);
bool ReplaceCompletedQuest(
uint characterCommonId,
QuestId questId,
QuestType questType,
uint count = 1
);
// Quest Progress
bool InsertQuestProgress(uint characterCommonId, uint questScheduleId, QuestType questType, uint step);
bool UpdateQuestProgress(uint characterCommonId, uint questScheduleId, QuestType questType, uint step);
bool RemoveQuestProgress(uint characterCommonId, uint questScheduleId, QuestType questType);
List<QuestProgress> GetQuestProgressByType(uint characterCommonId, QuestType questType);
QuestProgress GetQuestProgressById(uint characterCommonId, uint questScheduleId);
// Quest Priority
bool InsertPriorityQuest(uint characterCommonId, uint questScheduleId);
List<uint> GetPriorityQuestScheduleIds(uint characterCommonId);
bool DeletePriorityQuest(uint characterCommonId, uint questScheduleId);
// System mail
long InsertSystemMailAttachment(SystemMailAttachment attachment);
long InsertSystemMailAttachment(DbConnection connection, SystemMailAttachment attachment);
long InsertSystemMailMessage(SystemMailMessage message);
long InsertSystemMailMessage(DbConnection connection, SystemMailMessage message);
List<SystemMailMessage> SelectSystemMailMessages(uint characterId);
SystemMailMessage SelectSystemMailMessage(ulong messageId);
bool UpdateSystemMailMessageState(ulong messageId, MailState messageState);
bool DeleteSystemMailMessage(ulong messageId);
// System mail attachments
List<SystemMailAttachment> SelectAttachmentsForSystemMail(ulong messageId);
bool UpdateSystemMailAttachmentReceivedStatus(
ulong messageId,
ulong attachmentId,
bool isReceived
);
bool DeleteSystemMailAttachment(ulong messageId);
// Additional Status
bool InsertIfNotExistsAddStatus(
string itemUid,
uint characterId,
byte isAddStat1,
byte isAddStat2,
ushort addStat1,
ushort addStat2
);
bool InsertAddStatus(
string itemUid,
uint characterId,
byte isAddStat1,
byte isAddStat2,
ushort addStat1,
ushort addStat2
);
List<CDataAddStatusParam> GetAddStatusByUID(string itemUid);
bool UpdateAddStatus(
string itemUid,
uint characterId,
byte isAddStat1,
byte isAddStat2,
ushort addStat1,
ushort addStat2
);
// Play points
bool ReplaceCharacterPlayPointData(
uint id,
CDataJobPlayPoint updatedCharacterPlayPointData
);
bool UpdateCharacterPlayPointData(uint id, CDataJobPlayPoint updatedCharacterPlayPointData);
// Stamps
public bool InsertCharacterStampData(uint id, CharacterStampBonus stampData);
public bool UpdateCharacterStampData(uint id, CharacterStampBonus stampData);
// Crests
bool InsertCrest(
uint characterCommonId,
string itemUId,
uint slot,
uint crestId,
uint crestAmount,
DbConnection? connectionIn = null
);
bool UpdateCrest(
uint characterCommonId,
string itemUId,
uint slot,
uint crestId,
uint crestAmount
);
bool RemoveCrest(uint characterCommonId, string itemUId, uint slot);
List<Crest> GetCrests(uint characterCommonId, string itemUId);
// Bitterblack Maze Progress
bool InsertBBMCharacterId(uint characterId, uint bbmCharacterId);
uint SelectBBMCharacterId(uint characterId, DbConnection? connectionIn = null);
uint SelectBBMNormalCharacterId(uint bbmCharacterId);
bool InsertBBMProgress(
uint characterId,
ulong startTime,
uint contentId,
BattleContentMode contentMode,
uint tier,
bool killedDeath,
ulong lastTicketTime
);
bool UpdateBBMProgress(
uint characterId,
ulong startTime,
uint contentId,
BattleContentMode contentMode,
uint tier,
bool killedDeath,
ulong lastTicketTime
);
bool UpdateBBMProgress(uint characterId, BitterblackMazeProgress progress);
BitterblackMazeProgress SelectBBMProgress(uint characterId);
bool RemoveBBMProgress(uint characterId);
// Bitterblack Maze Rewards
bool InsertBBMRewards(uint characterId, uint goldMarks, uint silverMarks, uint redMarks);
bool UpdateBBMRewards(uint characterId, uint goldMarks, uint silverMarks, uint redMarks);
bool UpdateBBMRewards(uint characterId, BitterblackMazeRewards rewards);
bool RemoveBBMRewards(uint characterId);
BitterblackMazeRewards SelectBBMRewards(uint characterId);
// Bitterblack Maze Treasure
bool InsertBBMContentTreasure(
uint characterId,
BitterblackMazeTreasure treasure,
DbConnection? connectionIn = null
);
bool InsertBBMContentTreasure(
uint characterId,
uint contentId,
uint amount,
DbConnection? connectionIn = null
);
bool UpdateBBMContentTreasure(uint characterId, BitterblackMazeTreasure treasure);
bool UpdateBBMContentTreasure(uint characterId, uint contentId, uint amount);
bool RemoveBBMContentTreasure(uint characterId);
List<BitterblackMazeTreasure> SelectBBMContentTreasure(uint characterId);
// Clan
bool CreateClan(CDataClanParam clanParam);
bool DeleteClan(CDataClanParam clan, DbConnection? connectionIn = null);
uint SelectClanMembershipByCharacterId(uint characterId, DbConnection? connectionIn = null);
ClanName GetClanNameByClanId(uint clanId, DbConnection? connectionIn = null);
CDataClanParam SelectClan(uint clanId, DbConnection? connectionIn = null);
bool UpdateClan(CDataClanParam clan, DbConnection? connectionIn = null);
bool InsertClanMember(CDataClanMemberInfo memberInfo, uint clanId, DbConnection? connectionIn = null);
bool DeleteClanMember(uint characterId, uint clanId, DbConnection? connectionIn = null);
List<CDataClanMemberInfo> GetClanMemberList(uint clanId, DbConnection? connectionIn = null);
CDataClanMemberInfo GetClanMember(uint characterId, DbConnection? connectionIn = null);
bool UpdateClanMember(CDataClanMemberInfo memberInfo, uint clanId, DbConnection? connectionIn = null);
// Equipment Preset
bool InsertEquipmentPreset(uint characterCommonId, JobId jobId, uint presetNo, string presetName);
bool UpdateEquipmentPreset(uint characterCommonId, JobId jobId, uint presetNo, string presetName);
List<CDataEquipPreset> SelectEquipmentPresets(uint characterCommonId, JobId jobId);
bool DeleteEquipmentPreset(uint characterCommonId, JobId jobId, uint presetNo);
bool InsertEquipmentPresetTemplate(uint characterCommonId, JobId jobId, uint presetNo, uint slotNo, string itemUId);
List<CDataPresetEquipInfo> SelectEquipmentPresetTemplate(uint characterCommonId, JobId jobId, uint presetNo);
bool DeleteEquipmentPresetTemplate(uint characterCommonId, JobId jobId, uint presetNo);
}
}