import type { PaginationListColumnType } from '@/types' import type { AdminUserDetail } from '@/services/adminUserDetail' import { Card, CardBody, CardHeader } from '@/components/heroui/Card' import { Chip } from '@/components/heroui/Chip' import StatusChip from '@/components/ui/StatusChip' import { getBooleanStatus, getIdentityStatus, getUserAccountStatus, getUserRole } from '@/constants/status' import { formatNumber } from '@/helpers' import { formatIranianMobile, formatPersianDate } from '@/lib/formatters' export const formatToman = (value: unknown) => { const amount = Number(value) return Number.isFinite(amount) ? `${formatNumber(amount)} تومان` : '—' } const column = (field: string, label: string, type?: 'text' | 'date'): PaginationListColumnType => ({ field, label, filterable: false, sortable: false, ...(type ? { type } : {}), }) export const hostedEventsColumns = [ column('title', 'عنوان', 'text'), column('status', 'وضعیت'), column('startsAt', 'شروع', 'date'), column('bookedCount', 'ظرفیت پرشده'), column('capacity', 'ظرفیت کل'), column('isFree', 'رایگان'), column('price', 'قیمت'), column('createdAt', 'تاریخ ثبت', 'date'), ] export const bookingsColumns = [ column('bookingCode', 'کد رزرو', 'text'), column('eventTitle', 'رویداد', 'text'), column('status', 'وضعیت'), column('checkedInAt', 'چکاین', 'date'), column('createdAt', 'تاریخ ثبت', 'date'), ] export const paymentsColumns = [ column('paymentCode', 'کد پرداخت', 'text'), column('eventTitle', 'رویداد', 'text'), column('method', 'روش'), column('status', 'وضعیت'), column('totalAmount', 'مبلغ کل'), column('createdAt', 'تاریخ ثبت', 'date'), ] export const reviewsColumns = [ column('eventTitle', 'رویداد', 'text'), column('authorName', 'نویسنده', 'text'), column('rating', 'امتیاز'), column('body', 'متن', 'text'), column('status', 'وضعیت'), column('createdAt', 'تاریخ ثبت', 'date'), ] export const followsColumns = [ column('mobile', 'موبایل', 'text'), column('name', 'نام', 'text'), column('notifyNewEvents', 'اعلان رویداد جدید'), column('createdAt', 'تاریخ', 'date'), ] export const reportsColumns = [ column('otherUserMobile', 'موبایل طرف مقابل', 'text'), column('otherUserName', 'نام طرف مقابل', 'text'), column('reasonLabel', 'دلیل', 'text'), column('status', 'وضعیت'), column('createdAt', 'تاریخ', 'date'), ] export const blocksColumns = [ column('otherUserMobile', 'موبایل', 'text'), column('otherUserName', 'نام', 'text'), column('createdAt', 'تاریخ', 'date'), ] const DetailItem = ({ label, children }: { label: string; children: React.ReactNode }) => (