diff --git a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx
index 1e500a0..ba03486 100644
--- a/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx
+++ b/apps/admin.saladeaula.digital/app/routes/_.$orgid.payments.$id._index/route.tsx
@@ -15,7 +15,7 @@ import {
export function meta() {
return [
{
- title: 'Pagamento'
+ title: 'Detalhes do pagamento'
}
]
}
@@ -46,7 +46,7 @@ export default function Route({ loaderData: { order } }: Route.ComponentProps) {
- Pagamento
+ Detalhes do pagamento
diff --git a/apps/insights.saladeaula.digital/app/routes/_app.payments.$id._index/route.tsx b/apps/insights.saladeaula.digital/app/routes/_app.payments.$id._index/route.tsx
new file mode 100644
index 0000000..c05f6ca
--- /dev/null
+++ b/apps/insights.saladeaula.digital/app/routes/_app.payments.$id._index/route.tsx
@@ -0,0 +1,56 @@
+import type { Route } from './+types/route'
+
+import { Link } from 'react-router'
+
+import { request as req } from '@repo/util/request'
+import {
+ Breadcrumb,
+ BreadcrumbItem,
+ BreadcrumbLink,
+ BreadcrumbList,
+ BreadcrumbPage,
+ BreadcrumbSeparator
+} from '@repo/ui/components/ui/breadcrumb'
+
+export function meta() {
+ return [
+ {
+ title: 'Detalhes do pagamento'
+ }
+ ]
+}
+
+export async function loader({ params, request, context }: Route.LoaderArgs) {
+ const r = await req({
+ url: `/orders/${params.id}`,
+ request,
+ context
+ })
+
+ if (!r.ok) {
+ throw new Response(null, { status: r.status })
+ }
+
+ return { order: await r.json() }
+}
+
+export default function Route({ loaderData: { order } }: Route.ComponentProps) {
+ return (
+
+
+
+
+
+ Pagamentos
+
+
+
+
+ Detalhes do pagamento
+
+
+
+
{JSON.stringify(order, null, 2)}
+
+ )
+}
diff --git a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx
index 11df219..b45ea65 100644
--- a/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx
+++ b/apps/insights.saladeaula.digital/app/routes/_app.payments._index/columns.tsx
@@ -1,13 +1,15 @@
'use client'
import { type ColumnDef } from '@tanstack/react-table'
-import { EllipsisIcon } from 'lucide-react'
+import { EllipsisIcon, ReceiptTextIcon } from 'lucide-react'
import { Abbr } from '@repo/ui/components/abbr'
import { Button } from '@repo/ui/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
DropdownMenuTrigger
} from '@repo/ui/components/ui/dropdown-menu'
import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar'
@@ -20,6 +22,8 @@ import {
import { columns as columns_, type Order } from '@repo/ui/routes/orders/columns'
import { CopyToClipboardItem } from '../_app.users._index/columns'
+import { Spinner } from '@repo/ui/components/ui/spinner'
+import { NavLink } from 'react-router'
export type { Order }
@@ -83,6 +87,17 @@ function ActionMenu({ row }: { row: any }) {
+ e.preventDefault()}>
+
+ {({ isPending }) => (
+ <>
+ {isPending ? : }
+ Detalhes
+ >
+ )}
+
+
+
diff --git a/orders-events/app/app.py b/orders-events/app/app.py
index b7727d1..6e53daa 100644
--- a/orders-events/app/app.py
+++ b/orders-events/app/app.py
@@ -30,11 +30,14 @@ class InvoiceNotFoundError(NotFoundError): ...
class StatusAttr(Enum):
- PAID = 'paid_at'
+ # Post-migration (orders): uncomment the following lines
+ # PAID = 'paid_at'
+ # EXTERNALLY_PAID = 'paid_at'
+ EXTERNALLY_PAID = 'payment_date'
+ PAID = 'payment_date'
CANCELED = 'canceled_at'
REFUNDED = 'refunded_at'
EXPIRED = 'expired_at'
- EXTERNALLY_PAID = 'paid_at'
def _status_attr(status: str) -> StatusAttr | None:
diff --git a/orders-events/app/events/payments/charge_credit_card.py b/orders-events/app/events/payments/charge_credit_card.py
index 2ed5111..fe8e5a6 100644
--- a/orders-events/app/events/payments/charge_credit_card.py
+++ b/orders-events/app/events/payments/charge_credit_card.py
@@ -62,8 +62,9 @@ def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
if charge['success'] is True:
transact.update(
key=KeyPair(order_id, '0'),
+ # Post-migration (orders): rename `payment_date` to `paid_at`
update_expr='SET #status = :status, \
- paid_at = :now, \
+ payment_date = :now, \
updated_at = :now',
expr_attr_names={
'#status': 'status',
diff --git a/packages/ui/src/routes/orders/columns.tsx b/packages/ui/src/routes/orders/columns.tsx
index 86524c4..a7bbfdc 100644
--- a/packages/ui/src/routes/orders/columns.tsx
+++ b/packages/ui/src/routes/orders/columns.tsx
@@ -55,7 +55,7 @@ export const columns: ColumnDef[] = [
{
accessorKey: 'due_date',
enableSorting: true,
- meta: { title: 'Vencimento em' },
+ meta: { title: 'Vence em' },
header: DataTableColumnHeaderSort,
cell: DataTableColumnDatetime
},