feat: Add user management APIs, status enum, enhanced notifications
- Add updateUser and resetUserPassword admin endpoints - Change company status from boolean to enum (registered, lead, customer, inactive) - Add 'important' event type to calendar validators and email templates - Add 1-hour-before event notifications cron job - Add 18:00 evening notifications for next-day events - Add contact description field support - Fix count() function usage in admin service - Add SQL migrations for schema changes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,7 @@ export const createCompanySchema = z.object({
|
||||
phone: z.string().max(50).optional(),
|
||||
email: z.string().email('Neplatný formát emailu').max(255).optional().or(z.literal('')),
|
||||
website: z.string().url('Neplatný formát URL').max(255).optional().or(z.literal('')),
|
||||
status: z.enum(['registered', 'lead', 'customer', 'inactive']).optional(),
|
||||
});
|
||||
|
||||
export const updateCompanySchema = z.object({
|
||||
@@ -26,7 +27,7 @@ export const updateCompanySchema = z.object({
|
||||
phone: z.string().max(50).optional(),
|
||||
email: z.string().email('Neplatný formát emailu').max(255).optional().or(z.literal('')),
|
||||
website: z.string().url('Neplatný formát URL').max(255).optional().or(z.literal('')),
|
||||
isActive: z.boolean().optional(),
|
||||
status: z.enum(['registered', 'lead', 'customer', 'inactive']).optional(),
|
||||
});
|
||||
|
||||
// Project validators
|
||||
@@ -176,7 +177,7 @@ export const updateTimeEntrySchema = z.object({
|
||||
export const createEventSchema = z.object({
|
||||
title: z.string().min(1, 'Názov je povinný'),
|
||||
description: z.string().optional(),
|
||||
type: z.enum(['meeting', 'event']).default('meeting'),
|
||||
type: z.enum(['meeting', 'event', 'important']).default('meeting'),
|
||||
start: z.string().min(1, 'Začiatok je povinný'),
|
||||
end: z.string().min(1, 'Koniec je povinný'),
|
||||
assignedUserIds: z.array(z.string().uuid('Neplatný formát user ID')).optional(),
|
||||
@@ -185,7 +186,7 @@ export const createEventSchema = z.object({
|
||||
export const updateEventSchema = z.object({
|
||||
title: z.string().min(1).optional(),
|
||||
description: z.string().optional(),
|
||||
type: z.enum(['meeting', 'event']).optional(),
|
||||
type: z.enum(['meeting', 'event', 'important']).optional(),
|
||||
start: z.string().optional(),
|
||||
end: z.string().optional(),
|
||||
assignedUserIds: z.array(z.string().uuid('Neplatný formát user ID')).optional(),
|
||||
|
||||
Reference in New Issue
Block a user