import Table from '@/components/Table'
import { type FC } from 'react'
import type { RowDataType, ActionType } from '@/components/types/TableTypes'

interface AddressData extends RowDataType {
    id: number
    number: number
    title: string
    province: string
    city: string
    address: string
}

const AddressesTable: FC = () => {
    const handleRowActions = (item: AddressData): ActionType[] => {
        return [
            {
                label: 'ویرایش',
                onClick: () => {
                    console.log('ویرایش آدرس:', item.id)
                },
            },
            {
                label: 'حذف',
                onClick: () => {
                    console.log('حذف آدرس:', item.id)
                },
            },
        ]
    }

    const columns = [
        {
            key: 'number',
            title: 'شماره',
        },
        {
            key: 'title',
            title: 'عنوان',
        },
        {
            key: 'province',
            title: 'استان',
        },
        {
            key: 'city',
            title: 'شهر',
        },
        {
            key: 'address',
            title: 'آدرس',
        },
    ]

    const data: AddressData[] = [
        {
            id: 1,
            number: 1,
            title: 'خانه',
            province: 'مرکزی',
            city: 'اراک',
            address: 'خیابان شریعتی - خیابان جنت',
        },
        {
            id: 2,
            number: 2,
            title: 'خانه',
            province: 'مرکزی',
            city: 'اراک',
            address: 'خیابان شریعتی - خیابان جنت',
        },
        {
            id: 3,
            number: 3,
            title: 'خانه',
            province: 'مرکزی',
            city: 'اراک',
            address: 'خیابان شریعتی - خیابان جنت',
        },
    ]

    return (
        <Table
            columns={columns}
            data={data}
            selectable={true}
            rowActions={handleRowActions}
            className="mt-0"
        />
    )
}

export default AddressesTable

