mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-05-09 02:51:46 +00:00
Adiciona rota `/attachments` com visualização de todos os anexos do usuário em grade, visualização inline de imagem e PDF, navegação entre arquivos do mesmo lançamento e download direto. Inclui também: - API REST em `/api/attachments` para servir os arquivos - Actions `fetch-by-id` e `fetch-dialog-options` em transactions - Item "Anexos" adicionado à navbar - `formatBytes` extraído para `src/shared/utils/number.ts` - Migrations de banco atualizadas - Fix: uploads e remoções de anexo agora funcionam para todos os lançamentos, não apenas os pertencentes a séries Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
772 B
TypeScript
24 lines
772 B
TypeScript
"use server";
|
|
|
|
import { eq } from "drizzle-orm";
|
|
import { transactions } from "@/db/schema";
|
|
import { mapTransactionsData } from "@/features/transactions/page-helpers";
|
|
import { fetchTransactionsWithRelations } from "@/features/transactions/queries";
|
|
import { getUser } from "@/shared/lib/auth/server";
|
|
import type { TransactionItem } from "../components/types";
|
|
|
|
export async function fetchTransactionByIdAction(
|
|
transactionId: string,
|
|
): Promise<TransactionItem | null> {
|
|
const user = await getUser();
|
|
const rows = await fetchTransactionsWithRelations({
|
|
filters: [
|
|
eq(transactions.id, transactionId),
|
|
eq(transactions.userId, user.id),
|
|
],
|
|
excludeInitialBalanceFromIncome: false,
|
|
});
|
|
const mapped = mapTransactionsData(rows);
|
|
return mapped[0] ?? null;
|
|
}
|