{t('email.logs')}
-{t('email.logsDescription')}
-{t('phone.logs')}
-{t('phone.logsDescription')}
-
+ {JSON.stringify(row.original.content || {}, null, 2)}
+
+ ),
+ },
+ { accessorKey: 'status', header: t('column.status') },
+ {
+ accessorKey: 'created_at',
+ header: t('column.createdAt'),
+ cell: ({ row }) => formatDate(row.original.created_at),
+ },
+ ]}
+ params={[{ key: 'search' }, { key: 'date', type: 'date' }]}
+ request={async (pagination, filter) => {
+ const { data } = await filterEmailLog({
+ page: pagination.page,
+ size: pagination.size,
+ search: filter?.search,
+ date: (filter as any)?.date,
+ });
+ const list = ((data?.data?.list || []) as API.MessageLog[]) || [];
+ const total = Number(data?.data?.total || list.length);
+ return { list, total };
+ }}
+ />
+ );
+}
diff --git a/apps/admin/app/dashboard/log/gift/page.tsx b/apps/admin/app/dashboard/log/gift/page.tsx
new file mode 100644
index 0000000..6dfeca8
--- /dev/null
+++ b/apps/admin/app/dashboard/log/gift/page.tsx
@@ -0,0 +1,50 @@
+'use client';
+
+import { UserDetail } from '@/app/dashboard/user/user-detail';
+import { ProTable } from '@/components/pro-table';
+import { filterGiftLog } from '@/services/admin/log';
+import { formatDate } from '@workspace/ui/utils';
+import { useTranslations } from 'next-intl';
+
+export default function GiftLogPage() {
+ const t = useTranslations('log');
+ return (
+
+ {JSON.stringify(row.original.content || {}, null, 2)}
+
+ ),
+ },
+ { accessorKey: 'status', header: t('column.status') },
+ {
+ accessorKey: 'created_at',
+ header: t('column.createdAt'),
+ cell: ({ row }) => formatDate(row.original.created_at),
+ },
+ ]}
+ params={[{ key: 'search' }, { key: 'date', type: 'date' }]}
+ request={async (pagination, filter) => {
+ const { data } = await filterMobileLog({
+ page: pagination.page,
+ size: pagination.size,
+ search: filter?.search,
+ date: (filter as any)?.date,
+ });
+ const list = ((data?.data?.list || []) as API.MessageLog[]) || [];
+ const total = Number(data?.data?.total || list.length);
+ return { list, total };
+ }}
+ />
+ );
+}
diff --git a/apps/admin/app/dashboard/log/register/page.tsx b/apps/admin/app/dashboard/log/register/page.tsx
new file mode 100644
index 0000000..972e1fe
--- /dev/null
+++ b/apps/admin/app/dashboard/log/register/page.tsx
@@ -0,0 +1,54 @@
+'use client';
+
+import { UserDetail } from '@/app/dashboard/user/user-detail';
+import { IpLink } from '@/components/ip-link';
+import { ProTable } from '@/components/pro-table';
+import { filterRegisterLog } from '@/services/admin/log';
+import { formatDate } from '@workspace/ui/utils';
+import { useTranslations } from 'next-intl';
+
+export default function RegisterLogPage() {
+ const t = useTranslations('log');
+ return (
+