feat: add AI Dental Shopping section with sidebar nav and Login Info page
- Add AI Dental Shopping to sidebar with Search/Tag and Login Info sub-pages - Build full-stack Login Info CRUD: save vendor name, website, username, password per user - Add ShoppingVendor Prisma model, run db push, regenerate client and Zod schemas - Add storage layer, REST API at /api/shopping-vendors/, and frontend table with add/edit/delete modal Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
edec03e893
commit
e34140c2b1
+2
@@ -9,6 +9,7 @@ import { StaffUncheckedUpdateManyWithoutUserNestedInputObjectSchema as StaffUnch
|
||||
import { NpiProviderUncheckedUpdateManyWithoutUserNestedInputObjectSchema as NpiProviderUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './NpiProviderUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
import { ClaimUncheckedUpdateManyWithoutUserNestedInputObjectSchema as ClaimUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './ClaimUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
import { InsuranceCredentialUncheckedUpdateManyWithoutUserNestedInputObjectSchema as InsuranceCredentialUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './InsuranceCredentialUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
import { ShoppingVendorUncheckedUpdateManyWithoutUserNestedInputObjectSchema as ShoppingVendorUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './ShoppingVendorUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
import { PaymentUncheckedUpdateManyWithoutUpdatedByNestedInputObjectSchema as PaymentUncheckedUpdateManyWithoutUpdatedByNestedInputObjectSchema } from './PaymentUncheckedUpdateManyWithoutUpdatedByNestedInput.schema';
|
||||
import { DatabaseBackupUncheckedUpdateManyWithoutUserNestedInputObjectSchema as DatabaseBackupUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './DatabaseBackupUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
import { NotificationUncheckedUpdateManyWithoutUserNestedInputObjectSchema as NotificationUncheckedUpdateManyWithoutUserNestedInputObjectSchema } from './NotificationUncheckedUpdateManyWithoutUserNestedInput.schema';
|
||||
@@ -35,6 +36,7 @@ const makeSchema = () => z.object({
|
||||
npiProviders: z.lazy(() => NpiProviderUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
claims: z.lazy(() => ClaimUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
insuranceCredentials: z.lazy(() => InsuranceCredentialUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
shoppingVendors: z.lazy(() => ShoppingVendorUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
updatedPayments: z.lazy(() => PaymentUncheckedUpdateManyWithoutUpdatedByNestedInputObjectSchema).optional(),
|
||||
backups: z.lazy(() => DatabaseBackupUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
notifications: z.lazy(() => NotificationUncheckedUpdateManyWithoutUserNestedInputObjectSchema).optional(),
|
||||
|
||||
Reference in New Issue
Block a user