Passo 11 completo. Build limpo, AC verificado. O que foi construído no admin-web (localhost:3001): Infraestrutura completa a partir do zero: Tailwind, tRPC client/server, auth por autologin, env.ts, providers /maintenance — cliente de polling com refetchInterval: 5000ms: Header com contador de pedidos abertos + filtros por estado (checkboxes) e área (select) Grid de cards com thumbnail (presigned GET), posto, descrição, reporter + tempo relativo, badge de status OPEN → botão Aceitar (mutation claim) CLAIMED → info "Aceite por X há Ym" + botão Marcar resolvido (dialog com nota opcional) RESOLVED → badge verde + info "Resolvido por X há Ym" Badge no document.title: (N) FieldOps — Manutenção Toggle de notificação sonora via Web Audio API (beep ao detectar novo OPEN)
26 lines
688 B
TypeScript
26 lines
688 B
TypeScript
import { createEnv } from '@t3-oss/env-nextjs';
|
|
import { z } from 'zod';
|
|
|
|
export const env = createEnv({
|
|
server: {
|
|
DATABASE_URL: z.string().url(),
|
|
AUTH_DEV_AUTOLOGIN: z
|
|
.string()
|
|
.optional()
|
|
.transform((v) => v === 'true'),
|
|
LOG_LEVEL: z
|
|
.enum(['fatal', 'error', 'warn', 'info', 'debug', 'trace'])
|
|
.default('info'),
|
|
},
|
|
client: {
|
|
NEXT_PUBLIC_APP_URL: z.string().url().optional(),
|
|
},
|
|
runtimeEnv: {
|
|
DATABASE_URL: process.env.DATABASE_URL,
|
|
AUTH_DEV_AUTOLOGIN: process.env.AUTH_DEV_AUTOLOGIN,
|
|
LOG_LEVEL: process.env.LOG_LEVEL,
|
|
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
|
|
},
|
|
emptyStringAsUndefined: true,
|
|
});
|