130 lines
4.7 KiB
TypeScript
130 lines
4.7 KiB
TypeScript
"use server";
|
|
|
|
import type { Id } from "./_generated/dataModel";
|
|
|
|
export type TicketFormFieldSeed = {
|
|
key: string;
|
|
label: string;
|
|
type: "text" | "number" | "date" | "select" | "boolean";
|
|
required?: boolean;
|
|
description?: string;
|
|
options?: Array<{ value: string; label: string }>;
|
|
companyId?: Id<"companies"> | null;
|
|
};
|
|
|
|
export const TICKET_FORM_CONFIG = [
|
|
{
|
|
key: "admissao" as const,
|
|
label: "Admissão de colaborador",
|
|
description: "Coleta dados completos para novos colaboradores, incluindo informações pessoais e provisionamento de acesso.",
|
|
defaultEnabled: true,
|
|
},
|
|
{
|
|
key: "desligamento" as const,
|
|
label: "Desligamento de colaborador",
|
|
description: "Checklist de desligamento com orientações para revogar acessos e coletar equipamentos.",
|
|
defaultEnabled: true,
|
|
},
|
|
];
|
|
|
|
export const OPTIONAL_ADMISSION_FIELD_KEYS = [
|
|
"colaborador_observacoes",
|
|
"colaborador_permissoes_pasta",
|
|
"colaborador_equipamento",
|
|
"colaborador_grupos_email",
|
|
"colaborador_cpf",
|
|
"colaborador_rg",
|
|
"colaborador_patrimonio",
|
|
];
|
|
|
|
export const TICKET_FORM_DEFAULT_FIELDS: Record<string, TicketFormFieldSeed[]> = {
|
|
admissao: [
|
|
{ key: "solicitante_nome", label: "Nome do solicitante", type: "text", required: true, description: "Quem está solicitando a admissão." },
|
|
{ key: "solicitante_telefone", label: "Telefone do solicitante", type: "text", required: true },
|
|
{ key: "solicitante_ramal", label: "Ramal", type: "text" },
|
|
{
|
|
key: "solicitante_email",
|
|
label: "E-mail do solicitante",
|
|
type: "text",
|
|
required: true,
|
|
description: "Informe um e-mail válido para retornarmos atualizações.",
|
|
},
|
|
{ key: "colaborador_nome", label: "Nome do colaborador", type: "text", required: true },
|
|
{ key: "colaborador_email_desejado", label: "E-mail do colaborador", type: "text", required: true, description: "Endereço de e-mail que deverá ser criado." },
|
|
{ key: "colaborador_data_nascimento", label: "Data de nascimento", type: "date", required: true },
|
|
{ key: "colaborador_rg", label: "RG", type: "text", required: false },
|
|
{ key: "colaborador_cpf", label: "CPF", type: "text", required: false },
|
|
{ key: "colaborador_data_inicio", label: "Data de início", type: "date", required: true },
|
|
{ key: "colaborador_departamento", label: "Departamento", type: "text", required: true },
|
|
{
|
|
key: "colaborador_nova_contratacao",
|
|
label: "O colaborador é uma nova contratação?",
|
|
type: "select",
|
|
required: true,
|
|
description: "Informe se é uma nova contratação ou substituição.",
|
|
options: [
|
|
{ value: "nova", label: "Sim, nova contratação" },
|
|
{ value: "substituicao", label: "Não, irá substituir alguém" },
|
|
],
|
|
},
|
|
{
|
|
key: "colaborador_substituicao",
|
|
label: "Quem será substituído?",
|
|
type: "text",
|
|
description: "Preencha somente se for uma substituição.",
|
|
},
|
|
{
|
|
key: "colaborador_grupos_email",
|
|
label: "Grupos de e-mail necessários",
|
|
type: "text",
|
|
required: false,
|
|
description: "Liste os grupos ou escreva 'Não se aplica'.",
|
|
},
|
|
{
|
|
key: "colaborador_equipamento",
|
|
label: "Equipamento disponível",
|
|
type: "text",
|
|
required: false,
|
|
description: "Informe se já existe equipamento ou qual deverá ser disponibilizado.",
|
|
},
|
|
{
|
|
key: "colaborador_permissoes_pasta",
|
|
label: "Permissões de pastas",
|
|
type: "text",
|
|
required: false,
|
|
description: "Indique quais pastas ou qual colaborador servirá de referência.",
|
|
},
|
|
{
|
|
key: "colaborador_observacoes",
|
|
label: "Observações adicionais",
|
|
type: "text",
|
|
required: false,
|
|
},
|
|
{
|
|
key: "colaborador_patrimonio",
|
|
label: "Patrimônio do computador (se houver)",
|
|
type: "text",
|
|
required: false,
|
|
},
|
|
],
|
|
desligamento: [
|
|
{ key: "contato_nome", label: "Contato responsável", type: "text", required: true },
|
|
{ key: "contato_email", label: "E-mail do contato", type: "text", required: true },
|
|
{ key: "contato_telefone", label: "Telefone do contato", type: "text" },
|
|
{ key: "colaborador_nome", label: "Nome do colaborador", type: "text", required: true },
|
|
{ key: "colaborador_departamento", label: "Departamento do colaborador", type: "text", required: true },
|
|
{
|
|
key: "colaborador_email",
|
|
label: "E-mail do colaborador",
|
|
type: "text",
|
|
required: true,
|
|
description: "Informe o e-mail que deve ser desativado.",
|
|
},
|
|
{
|
|
key: "colaborador_patrimonio",
|
|
label: "Patrimônio do computador",
|
|
type: "text",
|
|
description: "Informe o patrimônio se houver equipamento vinculado.",
|
|
},
|
|
],
|
|
};
|