20250222131829_a3.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. using System;
  2. using Microsoft.EntityFrameworkCore.Migrations;
  3. #nullable disable
  4. namespace bitforum.Migrations.DefaultDb
  5. {
  6. /// <inheritdoc />
  7. public partial class a3 : Migration
  8. {
  9. /// <inheritdoc />
  10. protected override void Up(MigrationBuilder migrationBuilder)
  11. {
  12. migrationBuilder.CreateTable(
  13. name: "BoardGroup",
  14. columns: table => new
  15. {
  16. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  17. .Annotation("SqlServer:Identity", "1, 1"),
  18. Code = table.Column<string>(type: "nvarchar(70)", maxLength: 70, nullable: false, comment: "게시판 분류 주소"),
  19. Name = table.Column<string>(type: "nvarchar(70)", maxLength: 70, nullable: false, comment: "게시판 분류 명"),
  20. Order = table.Column<int>(type: "int", nullable: false, comment: "순서"),
  21. Boards = table.Column<long>(type: "bigint", nullable: false, comment: "게시판 수"),
  22. Posts = table.Column<long>(type: "bigint", nullable: false, comment: "게시글 수"),
  23. Comments = table.Column<long>(type: "bigint", nullable: false, comment: "댓글 수"),
  24. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
  25. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "등록 일시")
  26. },
  27. constraints: table =>
  28. {
  29. table.PrimaryKey("PK_BoardGroup", x => x.ID);
  30. });
  31. migrationBuilder.CreateTable(
  32. name: "Board",
  33. columns: table => new
  34. {
  35. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  36. .Annotation("SqlServer:Identity", "1, 1"),
  37. BoardGroupID = table.Column<int>(type: "int", nullable: false, comment: "분류 ID"),
  38. Code = table.Column<string>(type: "nvarchar(70)", maxLength: 70, nullable: false, comment: "게시판 주소"),
  39. Name = table.Column<string>(type: "nvarchar(70)", maxLength: 70, nullable: false, comment: "게시판 이름"),
  40. Order = table.Column<int>(type: "int", nullable: false, comment: "순서"),
  41. IsSearch = table.Column<bool>(type: "bit", nullable: false, comment: "검색 여부"),
  42. IsActive = table.Column<bool>(type: "bit", nullable: false, comment: "사용 여부"),
  43. Posts = table.Column<int>(type: "int", nullable: false, comment: "게시글 수"),
  44. Comments = table.Column<int>(type: "int", nullable: false, comment: "댓글 수"),
  45. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
  46. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "등록 일시")
  47. },
  48. constraints: table =>
  49. {
  50. table.PrimaryKey("PK_Board", x => x.ID);
  51. table.ForeignKey(
  52. name: "FK_Board_BoardGroup_BoardGroupID",
  53. column: x => x.BoardGroupID,
  54. principalTable: "BoardGroup",
  55. principalColumn: "ID");
  56. });
  57. migrationBuilder.CreateTable(
  58. name: "BoardMeta",
  59. columns: table => new
  60. {
  61. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  62. .Annotation("SqlServer:Identity", "1, 1"),
  63. BoardID = table.Column<int>(type: "int", nullable: false, comment: "게시판 ID")
  64. },
  65. constraints: table =>
  66. {
  67. table.PrimaryKey("PK_BoardMeta", x => x.ID);
  68. table.ForeignKey(
  69. name: "FK_BoardMeta_Board_BoardID",
  70. column: x => x.BoardID,
  71. principalTable: "Board",
  72. principalColumn: "ID",
  73. onDelete: ReferentialAction.Cascade);
  74. });
  75. migrationBuilder.CreateTable(
  76. name: "CommentMeta",
  77. columns: table => new
  78. {
  79. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  80. .Annotation("SqlServer:Identity", "1, 1"),
  81. BoardID = table.Column<int>(type: "int", nullable: false, comment: "게시판 ID"),
  82. EnableComment = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 사용"),
  83. PerPage = table.Column<int>(type: "int", nullable: false, comment: "목록 표시"),
  84. AllowLike = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 공감 사용"),
  85. AllowDisLike = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 비공감 사용"),
  86. ShowMemberPhoto = table.Column<bool>(type: "bit", nullable: false, comment: "회원 사진 공개"),
  87. ShowMemberIcon = table.Column<bool>(type: "bit", nullable: false, comment: "회원 아이콘 공개"),
  88. ContentPlaceholder = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: true, comment: "안내 문구"),
  89. MinContentLength = table.Column<int>(type: "int", nullable: false, comment: "최소 입력 글자"),
  90. MaxContentLength = table.Column<int>(type: "int", nullable: false, comment: "최대 입력 글자"),
  91. EnableEditor = table.Column<bool>(type: "bit", nullable: false, comment: "웹 에디터 사용"),
  92. AllowSecret = table.Column<bool>(type: "bit", nullable: false, comment: "비밀글 사용"),
  93. BlameHideCount = table.Column<int>(type: "int", nullable: false, comment: "댓글 신고 시 숨김"),
  94. DeleteProtectionDays = table.Column<int>(type: "int", nullable: false, comment: "댓글 삭제 금지 기간"),
  95. UpdateProtectionDays = table.Column<int>(type: "int", nullable: false, comment: "댓글 수정 금지 기간"),
  96. AllowDeleteProtection = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 보호 기능 (삭제 시)"),
  97. AllowUpdateProtection = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 보호 기능 (수정 시)"),
  98. EnableCommentUpdateLog = table.Column<bool>(type: "bit", nullable: false, comment: "댓글 변경 기록")
  99. },
  100. constraints: table =>
  101. {
  102. table.PrimaryKey("PK_CommentMeta", x => x.ID);
  103. table.ForeignKey(
  104. name: "FK_CommentMeta_Board_BoardID",
  105. column: x => x.BoardID,
  106. principalTable: "Board",
  107. principalColumn: "ID",
  108. onDelete: ReferentialAction.Cascade);
  109. });
  110. migrationBuilder.CreateTable(
  111. name: "Post",
  112. columns: table => new
  113. {
  114. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  115. .Annotation("SqlServer:Identity", "1, 1"),
  116. BoardID = table.Column<int>(type: "int", nullable: false, comment: "게시판 ID"),
  117. MemberID = table.Column<int>(type: "int", nullable: true, comment: "회원 ID"),
  118. Subject = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false, comment: "제목"),
  119. Content = table.Column<string>(type: "nvarchar(max)", nullable: false, comment: "내용"),
  120. SID = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "회원 SID"),
  121. Email = table.Column<string>(type: "nvarchar(60)", maxLength: 60, nullable: true, comment: "회원 이메일"),
  122. Name = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "회원 이름"),
  123. Password = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: true, comment: "게시글 비밀번호"),
  124. IsReply = table.Column<bool>(type: "bit", nullable: false, comment: "답변 여부"),
  125. IsSecret = table.Column<bool>(type: "bit", nullable: false, comment: "비밀글 여부"),
  126. IsNotice = table.Column<bool>(type: "bit", nullable: false, comment: "일반 공지 여부"),
  127. IsSpeaker = table.Column<bool>(type: "bit", nullable: false, comment: "전체 공지 여부"),
  128. IsDeleted = table.Column<bool>(type: "bit", nullable: false, comment: "삭제 여부"),
  129. Views = table.Column<long>(type: "bigint", nullable: false, comment: "조회 수"),
  130. Likes = table.Column<long>(type: "bigint", nullable: false, comment: "좋아요"),
  131. Dislikes = table.Column<long>(type: "bigint", nullable: false, comment: "싫어요"),
  132. Comments = table.Column<long>(type: "bigint", nullable: false, comment: "댓글 수"),
  133. Blames = table.Column<long>(type: "bigint", nullable: false, comment: "신고 수"),
  134. Files = table.Column<short>(type: "smallint", nullable: false, comment: "파일 수"),
  135. Images = table.Column<short>(type: "smallint", nullable: false, comment: "이미지 수"),
  136. Videos = table.Column<short>(type: "smallint", nullable: false, comment: "동영상 수"),
  137. Tags = table.Column<short>(type: "smallint", nullable: false, comment: "Tag 수"),
  138. IpAddress = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false, comment: "IP"),
  139. UserAgent = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false, comment: "User-Agent"),
  140. LastReplyUpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "마지막 답변 일시"),
  141. LastCommentUpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "마지막 댓글 일시"),
  142. DeletedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "삭제 일시"),
  143. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
  144. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "등록 일시")
  145. },
  146. constraints: table =>
  147. {
  148. table.PrimaryKey("PK_Post", x => x.ID);
  149. table.ForeignKey(
  150. name: "FK_Post_Board_BoardID",
  151. column: x => x.BoardID,
  152. principalTable: "Board",
  153. principalColumn: "ID");
  154. table.ForeignKey(
  155. name: "FK_Post_Member_MemberID",
  156. column: x => x.MemberID,
  157. principalTable: "Member",
  158. principalColumn: "ID");
  159. });
  160. migrationBuilder.CreateTable(
  161. name: "PostMeta",
  162. columns: table => new
  163. {
  164. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  165. .Annotation("SqlServer:Identity", "1, 1"),
  166. BoardID = table.Column<int>(type: "int", nullable: false, comment: "게시판 ID")
  167. },
  168. constraints: table =>
  169. {
  170. table.PrimaryKey("PK_PostMeta", x => x.ID);
  171. table.ForeignKey(
  172. name: "FK_PostMeta_Board_BoardID",
  173. column: x => x.BoardID,
  174. principalTable: "Board",
  175. principalColumn: "ID",
  176. onDelete: ReferentialAction.Cascade);
  177. });
  178. migrationBuilder.CreateTable(
  179. name: "Comment",
  180. columns: table => new
  181. {
  182. ID = table.Column<int>(type: "int", nullable: false, comment: "PK")
  183. .Annotation("SqlServer:Identity", "1, 1"),
  184. BoardID = table.Column<int>(type: "int", nullable: false, comment: "게시판 ID"),
  185. PostID = table.Column<int>(type: "int", nullable: false, comment: "게시글 ID"),
  186. MemberID = table.Column<int>(type: "int", nullable: true, comment: "회원 ID"),
  187. ParentID = table.Column<int>(type: "int", nullable: true, comment: "부모 댓글 ID"),
  188. Depth = table.Column<int>(type: "int", nullable: false, comment: "댓글 깊이"),
  189. Content = table.Column<string>(type: "nvarchar(4000)", maxLength: 4000, nullable: false, comment: "댓글 내용"),
  190. SID = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "회원 SID"),
  191. Email = table.Column<string>(type: "nvarchar(60)", maxLength: 60, nullable: true, comment: "회원 이메일"),
  192. Name = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true, comment: "회원 이름"),
  193. Password = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: true, comment: "댓글 비밀번호"),
  194. IsSecret = table.Column<bool>(type: "bit", nullable: false, comment: "비밀글 여부"),
  195. IsDeleted = table.Column<bool>(type: "bit", nullable: false, comment: "삭제 여부"),
  196. Likes = table.Column<long>(type: "bigint", nullable: false, comment: "좋아요"),
  197. Dislikes = table.Column<long>(type: "bigint", nullable: false, comment: "싫어요"),
  198. Blames = table.Column<long>(type: "bigint", nullable: false, comment: "신고 수"),
  199. Replies = table.Column<long>(type: "bigint", nullable: false, comment: "대댓글 수"),
  200. IpAddress = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false, comment: "IP"),
  201. UserAgent = table.Column<string>(type: "nvarchar(255)", maxLength: 255, nullable: false, comment: "User-Agent"),
  202. DeletedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "삭제 일시"),
  203. UpdatedAt = table.Column<DateTime>(type: "datetime2", nullable: true, comment: "수정 일시"),
  204. CreatedAt = table.Column<DateTime>(type: "datetime2", nullable: false, comment: "등록 일시")
  205. },
  206. constraints: table =>
  207. {
  208. table.PrimaryKey("PK_Comment", x => x.ID);
  209. table.ForeignKey(
  210. name: "FK_Comment_Board_BoardID",
  211. column: x => x.BoardID,
  212. principalTable: "Board",
  213. principalColumn: "ID",
  214. onDelete: ReferentialAction.Cascade);
  215. table.ForeignKey(
  216. name: "FK_Comment_Comment_ParentID",
  217. column: x => x.ParentID,
  218. principalTable: "Comment",
  219. principalColumn: "ID");
  220. table.ForeignKey(
  221. name: "FK_Comment_Member_MemberID",
  222. column: x => x.MemberID,
  223. principalTable: "Member",
  224. principalColumn: "ID");
  225. table.ForeignKey(
  226. name: "FK_Comment_Post_PostID",
  227. column: x => x.PostID,
  228. principalTable: "Post",
  229. principalColumn: "ID");
  230. });
  231. migrationBuilder.CreateIndex(
  232. name: "IX_Board_BoardGroupID",
  233. table: "Board",
  234. column: "BoardGroupID");
  235. migrationBuilder.CreateIndex(
  236. name: "IX_Board_Code",
  237. table: "Board",
  238. column: "Code",
  239. unique: true);
  240. migrationBuilder.CreateIndex(
  241. name: "IX_Board_Comments",
  242. table: "Board",
  243. column: "Comments");
  244. migrationBuilder.CreateIndex(
  245. name: "IX_Board_IsActive",
  246. table: "Board",
  247. column: "IsActive");
  248. migrationBuilder.CreateIndex(
  249. name: "IX_Board_IsSearch",
  250. table: "Board",
  251. column: "IsSearch");
  252. migrationBuilder.CreateIndex(
  253. name: "IX_Board_Name",
  254. table: "Board",
  255. column: "Name");
  256. migrationBuilder.CreateIndex(
  257. name: "IX_Board_Order",
  258. table: "Board",
  259. column: "Order");
  260. migrationBuilder.CreateIndex(
  261. name: "IX_Board_Posts",
  262. table: "Board",
  263. column: "Posts");
  264. migrationBuilder.CreateIndex(
  265. name: "IX_BoardGroup_Boards",
  266. table: "BoardGroup",
  267. column: "Boards");
  268. migrationBuilder.CreateIndex(
  269. name: "IX_BoardGroup_Code",
  270. table: "BoardGroup",
  271. column: "Code");
  272. migrationBuilder.CreateIndex(
  273. name: "IX_BoardGroup_Comments",
  274. table: "BoardGroup",
  275. column: "Comments");
  276. migrationBuilder.CreateIndex(
  277. name: "IX_BoardGroup_Name",
  278. table: "BoardGroup",
  279. column: "Name");
  280. migrationBuilder.CreateIndex(
  281. name: "IX_BoardGroup_Order",
  282. table: "BoardGroup",
  283. column: "Order");
  284. migrationBuilder.CreateIndex(
  285. name: "IX_BoardGroup_Posts",
  286. table: "BoardGroup",
  287. column: "Posts");
  288. migrationBuilder.CreateIndex(
  289. name: "IX_BoardMeta_BoardID",
  290. table: "BoardMeta",
  291. column: "BoardID");
  292. migrationBuilder.CreateIndex(
  293. name: "IX_Comment_Blames",
  294. table: "Comment",
  295. column: "Blames");
  296. migrationBuilder.CreateIndex(
  297. name: "IX_Comment_BoardID",
  298. table: "Comment",
  299. column: "BoardID");
  300. migrationBuilder.CreateIndex(
  301. name: "IX_Comment_CreatedAt",
  302. table: "Comment",
  303. column: "CreatedAt");
  304. migrationBuilder.CreateIndex(
  305. name: "IX_Comment_Dislikes",
  306. table: "Comment",
  307. column: "Dislikes");
  308. migrationBuilder.CreateIndex(
  309. name: "IX_Comment_Email",
  310. table: "Comment",
  311. column: "Email");
  312. migrationBuilder.CreateIndex(
  313. name: "IX_Comment_IsDeleted",
  314. table: "Comment",
  315. column: "IsDeleted");
  316. migrationBuilder.CreateIndex(
  317. name: "IX_Comment_IsSecret",
  318. table: "Comment",
  319. column: "IsSecret");
  320. migrationBuilder.CreateIndex(
  321. name: "IX_Comment_Likes",
  322. table: "Comment",
  323. column: "Likes");
  324. migrationBuilder.CreateIndex(
  325. name: "IX_Comment_MemberID",
  326. table: "Comment",
  327. column: "MemberID");
  328. migrationBuilder.CreateIndex(
  329. name: "IX_Comment_Name",
  330. table: "Comment",
  331. column: "Name");
  332. migrationBuilder.CreateIndex(
  333. name: "IX_Comment_ParentID",
  334. table: "Comment",
  335. column: "ParentID");
  336. migrationBuilder.CreateIndex(
  337. name: "IX_Comment_PostID",
  338. table: "Comment",
  339. column: "PostID");
  340. migrationBuilder.CreateIndex(
  341. name: "IX_Comment_Replies",
  342. table: "Comment",
  343. column: "Replies");
  344. migrationBuilder.CreateIndex(
  345. name: "IX_Comment_SID",
  346. table: "Comment",
  347. column: "SID");
  348. migrationBuilder.CreateIndex(
  349. name: "IX_CommentMeta_BoardID",
  350. table: "CommentMeta",
  351. column: "BoardID");
  352. migrationBuilder.CreateIndex(
  353. name: "IX_Post_Blames",
  354. table: "Post",
  355. column: "Blames");
  356. migrationBuilder.CreateIndex(
  357. name: "IX_Post_BoardID",
  358. table: "Post",
  359. column: "BoardID");
  360. migrationBuilder.CreateIndex(
  361. name: "IX_Post_Comments",
  362. table: "Post",
  363. column: "Comments");
  364. migrationBuilder.CreateIndex(
  365. name: "IX_Post_CreatedAt",
  366. table: "Post",
  367. column: "CreatedAt");
  368. migrationBuilder.CreateIndex(
  369. name: "IX_Post_Dislikes",
  370. table: "Post",
  371. column: "Dislikes");
  372. migrationBuilder.CreateIndex(
  373. name: "IX_Post_Email",
  374. table: "Post",
  375. column: "Email");
  376. migrationBuilder.CreateIndex(
  377. name: "IX_Post_Files",
  378. table: "Post",
  379. column: "Files");
  380. migrationBuilder.CreateIndex(
  381. name: "IX_Post_Images",
  382. table: "Post",
  383. column: "Images");
  384. migrationBuilder.CreateIndex(
  385. name: "IX_Post_IsDeleted",
  386. table: "Post",
  387. column: "IsDeleted");
  388. migrationBuilder.CreateIndex(
  389. name: "IX_Post_IsNotice",
  390. table: "Post",
  391. column: "IsNotice");
  392. migrationBuilder.CreateIndex(
  393. name: "IX_Post_IsReply",
  394. table: "Post",
  395. column: "IsReply");
  396. migrationBuilder.CreateIndex(
  397. name: "IX_Post_IsSecret",
  398. table: "Post",
  399. column: "IsSecret");
  400. migrationBuilder.CreateIndex(
  401. name: "IX_Post_IsSpeaker",
  402. table: "Post",
  403. column: "IsSpeaker");
  404. migrationBuilder.CreateIndex(
  405. name: "IX_Post_LastCommentUpdatedAt",
  406. table: "Post",
  407. column: "LastCommentUpdatedAt");
  408. migrationBuilder.CreateIndex(
  409. name: "IX_Post_LastReplyUpdatedAt",
  410. table: "Post",
  411. column: "LastReplyUpdatedAt");
  412. migrationBuilder.CreateIndex(
  413. name: "IX_Post_Likes",
  414. table: "Post",
  415. column: "Likes");
  416. migrationBuilder.CreateIndex(
  417. name: "IX_Post_MemberID",
  418. table: "Post",
  419. column: "MemberID");
  420. migrationBuilder.CreateIndex(
  421. name: "IX_Post_Name",
  422. table: "Post",
  423. column: "Name");
  424. migrationBuilder.CreateIndex(
  425. name: "IX_Post_SID",
  426. table: "Post",
  427. column: "SID");
  428. migrationBuilder.CreateIndex(
  429. name: "IX_Post_Subject",
  430. table: "Post",
  431. column: "Subject");
  432. migrationBuilder.CreateIndex(
  433. name: "IX_Post_Tags",
  434. table: "Post",
  435. column: "Tags");
  436. migrationBuilder.CreateIndex(
  437. name: "IX_Post_Videos",
  438. table: "Post",
  439. column: "Videos");
  440. migrationBuilder.CreateIndex(
  441. name: "IX_Post_Views",
  442. table: "Post",
  443. column: "Views");
  444. migrationBuilder.CreateIndex(
  445. name: "IX_PostMeta_BoardID",
  446. table: "PostMeta",
  447. column: "BoardID");
  448. }
  449. /// <inheritdoc />
  450. protected override void Down(MigrationBuilder migrationBuilder)
  451. {
  452. migrationBuilder.DropTable(
  453. name: "BoardMeta");
  454. migrationBuilder.DropTable(
  455. name: "Comment");
  456. migrationBuilder.DropTable(
  457. name: "CommentMeta");
  458. migrationBuilder.DropTable(
  459. name: "PostMeta");
  460. migrationBuilder.DropTable(
  461. name: "Post");
  462. migrationBuilder.DropTable(
  463. name: "Board");
  464. migrationBuilder.DropTable(
  465. name: "BoardGroup");
  466. }
  467. }
  468. }