--- import { Icon } from 'astro-icon/components' import { actions } from 'astro:actions' import AdminOnly from '../../components/AdminOnly.astro' import BadgeSmall from '../../components/BadgeSmall.astro' import Button from '../../components/Button.astro' import Chat from '../../components/Chat.astro' import ServiceCard from '../../components/ServiceCard.astro' import { getServiceSuggestionStatusInfo } from '../../constants/serviceSuggestionStatus' import { getServiceSuggestionTypeInfo } from '../../constants/serviceSuggestionType' import BaseLayout from '../../layouts/BaseLayout.astro' import { parseIntWithFallback } from '../../lib/numbers' import { prisma } from '../../lib/prisma' import { makeLoginUrl } from '../../lib/redirectUrls' import { formatDateShort } from '../../lib/timeAgo' const user = Astro.locals.user if (!user) { return Astro.redirect(makeLoginUrl(Astro.url, { message: 'Login to view service suggestion' })) } const { id: serviceSuggestionIdRaw } = Astro.params const serviceSuggestionId = parseIntWithFallback(serviceSuggestionIdRaw) if (!serviceSuggestionId) { return Astro.rewrite('/404') } const serviceSuggestion = await Astro.locals.banners.try('Error fetching service suggestion', async () => prisma.serviceSuggestion.findUnique({ select: { id: true, type: true, status: true, notes: true, createdAt: true, service: { select: { id: true, name: true, slug: true, description: true, overallScore: true, kycLevel: true, imageUrl: true, verificationStatus: true, acceptedCurrencies: true, serviceVisibility: true, categories: { select: { name: true, icon: true, }, }, }, }, messages: { select: { id: true, content: true, createdAt: true, user: { select: { id: true, name: true, displayName: true, picture: true, }, }, }, orderBy: { createdAt: 'desc', }, }, }, where: { id: serviceSuggestionId, userId: user.id, }, }) ) if (!serviceSuggestion) { if (user.admin) return Astro.redirect(`/admin/service-suggestions/${serviceSuggestionIdRaw}`) return Astro.rewrite('/404') } const statusInfo = getServiceSuggestionStatusInfo(serviceSuggestion.status) const typeInfo = getServiceSuggestionTypeInfo(serviceSuggestion.type) ---

Service suggestion

Status:
Type:
Submitted: { formatDateShort(serviceSuggestion.createdAt, { prefix: false, hourPrecision: true, caseType: 'sentence', }) }
Service: Open
Notes for moderators: { serviceSuggestion.notes ? (
) : (
Empty
) }