import { apiClient } from '@/lib/api/client'; import type { UserRole } from '@/lib/auth/jwt'; /** Tupla `as const` (não `UserRole[]`) para preservar os literais na inferência do `z.enum` (`lib/validators/equipe.ts`). */ export const EQUIPE_ROLES = ['tenant_admin', 'vendedor', 'financeiro', 'visualizador'] as const; export const EQUIPE_ROLE_LABEL: Record = { tenant_admin: 'Administrador', vendedor: 'Vendedor', financeiro: 'Financeiro', visualizador: 'Visualizador', }; /** Espelha o `select` público de `EquipeService` (`src/modules/equipe/equipe.service.ts`). */ export interface EquipeUser { id: string; nome: string; email: string; role: UserRole; ativo: boolean; criado_em: string; } /** `senha_provisoria` só aparece nesta resposta, uma única vez, em texto puro. */ export interface EquipeUserCreated extends EquipeUser { senha_provisoria: string; } /** Espelha `CreateEquipeUserDto`. */ export interface CreateEquipeUserInput { nome: string; email: string; role: UserRole; senha?: string; } /** Espelha `UpdateEquipeUserDto`. */ export interface UpdateEquipeUserInput { role?: UserRole; ativo?: boolean; } export function listEquipe() { return apiClient.get('/tenant/equipe'); } export function createEquipeUser(input: CreateEquipeUserInput) { return apiClient.post('/tenant/equipe', input); } export function updateEquipeUser(id: string, input: UpdateEquipeUserInput) { return apiClient.patch(`/tenant/equipe/${id}`, input); }