Files
crm-server/src/routes/personal-contact.routes.js
richardtekula 8770a98db8 feat: Add company linking to personal contacts
- Add companyId column to personal_contacts table
- Update personal-contact service to include companyName in list
- Add getContactsByCompanyId function for company contacts endpoint
- Add GET /companies/:companyId/contacts endpoint
- Add companyId to contact validation schema

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 08:03:29 +01:00

42 lines
1.3 KiB
JavaScript

import express from 'express'
import { z } from 'zod'
import { authenticate } from '../middlewares/auth/authMiddleware.js'
import { validateBody, validateParams } from '../middlewares/security/validateInput.js'
import * as personalContactController from '../controllers/personal-contact.controller.js'
const router = express.Router()
const createContactSchema = z.object({
firstName: z.string().min(1, 'Meno je povinné'),
lastName: z.string().optional(),
phone: z.string().min(3, 'Telefón je povinný'),
email: z.string().email('Neplatný email'),
secondaryEmail: z.union([z.string().email('Neplatný email'), z.literal('')]).optional(),
companyId: z.union([z.string().uuid(), z.literal(''), z.null()]).optional(),
})
const updateContactSchema = createContactSchema.partial()
const contactIdSchema = z.object({ contactId: z.string().uuid() })
router.use(authenticate)
router.get('/', personalContactController.listPersonalContacts)
router.post('/', validateBody(createContactSchema), personalContactController.createPersonalContact)
router.put(
'/:contactId',
validateParams(contactIdSchema),
validateBody(updateContactSchema),
personalContactController.updatePersonalContact
)
router.delete(
'/:contactId',
validateParams(contactIdSchema),
personalContactController.deletePersonalContact
)
export default router