Add auto-generated account numbers and member numbers

6-digit random numbers generated on create, unique per company. Member
number column added to member table. Both displayed in UI tables.
This commit is contained in:
Ryan Moon
2026-03-28 09:15:27 -05:00
parent 572af05a3f
commit 8ea3b8dffb
6 changed files with 50 additions and 2 deletions

View File

@@ -7,7 +7,7 @@ import { DataTable, type Column } from '@/components/shared/data-table'
import { Badge } from '@/components/ui/badge'
import { Input } from '@/components/ui/input'
import { Button } from '@/components/ui/button'
import { Search } from 'lucide-react'
import { Search, Plus } from 'lucide-react'
export const Route = createFileRoute('/_authenticated/members')({
validateSearch: (search: Record<string, unknown>) => ({
@@ -21,6 +21,11 @@ export const Route = createFileRoute('/_authenticated/members')({
})
const memberColumns: Column<MemberWithAccount>[] = [
{
key: 'memberNumber',
header: '#',
render: (row) => <span className="font-mono text-sm text-muted-foreground">{row.memberNumber ?? '-'}</span>,
},
{
key: 'last_name',
header: 'Name',
@@ -68,7 +73,13 @@ function MembersListPage() {
return (
<div className="space-y-6">
<h1 className="text-2xl font-bold">Members</h1>
<div className="flex items-center justify-between">
<h1 className="text-2xl font-bold">Members</h1>
<Button onClick={() => navigate({ to: '/accounts/new' })}>
<Plus className="mr-2 h-4 w-4" />
New Member
</Button>
</div>
<form onSubmit={handleSearchSubmit} className="flex gap-2 max-w-sm">
<div className="relative flex-1">

View File

@@ -3,6 +3,7 @@ export interface Account {
companyId: string
accountNumber: string | null
name: string
primaryMemberId: string | null
email: string | null
phone: string | null
address: {
@@ -25,6 +26,7 @@ export interface Member {
id: string
accountId: string
companyId: string
memberNumber: string | null
firstName: string
lastName: string
dateOfBirth: string | null