import { z } from 'zod';

// Dados legais da empresa matriz (a que fatura o pedido) — cabeçalho do PDF.
// Fonte: gestao.empresa (matriz) + vw_municipios.
export const EmpresaInfoSchema = z.object({
  idEmpresa: z.number().int(),
  razaoSocial: z.string(),
  nomeFantasia: z.string().nullable(),
  cnpj: z.string().nullable(),
  inscricaoEstadual: z.string().nullable(),
  endereco: z.string().nullable(),
  numero: z.string().nullable(),
  complemento: z.string().nullable(),
  bairro: z.string().nullable(),
  cidade: z.string().nullable(),
  uf: z.string().nullable(),
  cep: z.string().nullable(),
  telefone: z.string().nullable(),
  email: z.string().nullable(),
  // Logo (data URL) exibido no cabeçalho da impressão — sar.config_empresa
  logoBase64: z.string().nullable().optional(),
});
export type EmpresaInfo = z.infer<typeof EmpresaInfoSchema>;

// Upload do logo pelo gerente — data URL de imagem; null remove o logo.
// ~700KB de base64 = imagem de ~500KB, suficiente para logo de cabeçalho.
export const UpdateLogoBodySchema = z.object({
  logoBase64: z
    .string()
    .max(700_000)
    .regex(/^data:image\/(png|jpeg|jpg|webp);base64,[A-Za-z0-9+/=]+$/)
    .nullable(),
});
export type UpdateLogoBody = z.infer<typeof UpdateLogoBodySchema>;
