import { z } from 'zod';

export const twilioConnectSchema = z.object({
  account_sid: z.string().min(1, 'Account SID is required'),
  auth_token: z.string().min(1, 'Auth Token is required'),
});

export const createSipLineSchema = z.object({
  display_name: z.string().min(1).max(100),
  sip_server: z.string().min(1).max(255),
  sip_username: z.string().min(1).max(100),
  sip_password: z.string().max(255).default(''),
  outbound_proxy: z.string().max(255).optional(),
  assigned_agent_id: z.string().uuid().optional().nullable(),
  branch_id: z.string().uuid().optional().nullable(),
});

export const updateSipLineSchema = z.object({
  display_name: z.string().min(1).max(100).optional(),
  sip_server: z.string().min(1).max(255).optional(),
  sip_username: z.string().min(1).max(100).optional(),
  sip_password: z.string().max(255).optional(),
  outbound_proxy: z.string().max(255).optional(),
  assigned_agent_id: z.string().uuid().optional().nullable(),
  is_active: z.boolean().optional(),
  call_recording: z.boolean().optional(),
  call_transcription: z.boolean().optional(),
});

export const assignAgentSchema = z.object({
  agent_id: z.string().uuid().nullable(),
  number_id: z.string().uuid(),
});
