feat: add Office Contact settings page and reorder Advanced sidebar

- Add OfficeContact Prisma model with receptionist name, dentist name, phone, email, fax fields
- Create GET/PUT /api/office-contact backend route and storage
- Add OfficeContactCard frontend component under Settings > Advanced
- Reorder Advanced sidebar: Office Hours → Office Contact → Twilio Settings → Google AI Settings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gitead
2026-05-05 21:19:30 -04:00
parent 2312ad66ca
commit 800008792a
188 changed files with 3780 additions and 173 deletions

View File

@@ -0,0 +1,10 @@
import type { Prisma } from '../../generated/prisma';
import * as z from 'zod';
import { OfficeContactOrderByWithRelationInputObjectSchema as OfficeContactOrderByWithRelationInputObjectSchema } from './objects/OfficeContactOrderByWithRelationInput.schema';
import { OfficeContactWhereInputObjectSchema as OfficeContactWhereInputObjectSchema } from './objects/OfficeContactWhereInput.schema';
import { OfficeContactWhereUniqueInputObjectSchema as OfficeContactWhereUniqueInputObjectSchema } from './objects/OfficeContactWhereUniqueInput.schema';
import { OfficeContactCountAggregateInputObjectSchema as OfficeContactCountAggregateInputObjectSchema } from './objects/OfficeContactCountAggregateInput.schema';
export const OfficeContactCountSchema: z.ZodType<Prisma.OfficeContactCountArgs> = z.object({ orderBy: z.union([OfficeContactOrderByWithRelationInputObjectSchema, OfficeContactOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeContactWhereInputObjectSchema.optional(), cursor: OfficeContactWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), select: z.union([ z.literal(true), OfficeContactCountAggregateInputObjectSchema ]).optional() }).strict() as unknown as z.ZodType<Prisma.OfficeContactCountArgs>;
export const OfficeContactCountZodSchema = z.object({ orderBy: z.union([OfficeContactOrderByWithRelationInputObjectSchema, OfficeContactOrderByWithRelationInputObjectSchema.array()]).optional(), where: OfficeContactWhereInputObjectSchema.optional(), cursor: OfficeContactWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), select: z.union([ z.literal(true), OfficeContactCountAggregateInputObjectSchema ]).optional() }).strict();