Release 2025-05-23-5vNZ

This commit is contained in:
pluja
2025-05-23 12:05:29 +00:00
parent cdfdcfc122
commit 61a5448ff5
2 changed files with 36 additions and 13 deletions

View File

@@ -859,6 +859,22 @@ const generateFakeServiceContactMethod = (serviceId: number) => {
{ {
value: `https://x.com/${faker.internet.username()}`, value: `https://x.com/${faker.internet.username()}`,
}, },
{
value: `https://matrix.to/#/@${faker.internet.username()}:${faker.internet.domainName()}`,
},
{
value: `https://instagram.com/${faker.internet.username()}`,
},
{
value: `https://linkedin.com/in/${faker.helpers.slugify(faker.person.fullName())}`,
},
{
label: faker.lorem.word({ length: 2 }),
value: `https://bitcointalk.org/index.php?topic=${faker.number.int({ min: 1, max: 1000000 }).toString()}.0`,
},
{
value: `https://bitcointalk.org/index.php?topic=${faker.number.int({ min: 1, max: 1000000 }).toString()}.0`,
},
{ {
value: faker.internet.url(), value: faker.internet.url(),
}, },
@@ -867,7 +883,7 @@ const generateFakeServiceContactMethod = (serviceId: number) => {
value: faker.internet.url(), value: faker.internet.url(),
}, },
{ {
value: `https://www.linkedin.com/company/${faker.helpers.slugify(faker.company.name())}`, value: `https://linkedin.com/company/${faker.helpers.slugify(faker.company.name())}`,
}, },
] as const satisfies Partial<Prisma.ServiceContactMethodCreateInput>[] ] as const satisfies Partial<Prisma.ServiceContactMethodCreateInput>[]

View File

@@ -18,7 +18,7 @@ const serviceSchemaBase = z.object({
slug: z slug: z
.string() .string()
.regex(/^[a-z0-9-]+$/, 'Allowed characters: lowercase letters, numbers, and hyphens') .regex(/^[a-z0-9-]+$/, 'Allowed characters: lowercase letters, numbers, and hyphens')
.optional(), .nullable(),
name: z.string().min(1).max(20), name: z.string().min(1).max(20),
description: z.string().min(1), description: z.string().min(1),
serviceUrls: stringListOfUrlsSchemaRequired, serviceUrls: stringListOfUrlsSchemaRequired,
@@ -28,12 +28,12 @@ const serviceSchemaBase = z.object({
attributes: z.array(z.coerce.number().int().positive()), attributes: z.array(z.coerce.number().int().positive()),
categories: z.array(z.coerce.number().int().positive()).min(1), categories: z.array(z.coerce.number().int().positive()).min(1),
verificationStatus: z.nativeEnum(VerificationStatus), verificationStatus: z.nativeEnum(VerificationStatus),
verificationSummary: z.string().optional().nullable().default(null), verificationSummary: z.string().nullable(),
verificationProofMd: z.string().optional().nullable().default(null), verificationProofMd: z.string().nullable(),
acceptedCurrencies: z.array(z.nativeEnum(Currency)), acceptedCurrencies: z.array(z.nativeEnum(Currency)),
referral: z.string().optional().nullable().default(null), referral: z.string().nullable(),
imageFile: imageFileSchema, imageFile: imageFileSchema,
overallScore: zodCohercedNumber(z.number().int().min(0).max(10)).optional(), overallScore: zodCohercedNumber(z.number().int().min(0).max(10)).nullable(),
serviceVisibility: z.nativeEnum(ServiceVisibility), serviceVisibility: z.nativeEnum(ServiceVisibility),
}) })
@@ -187,13 +187,17 @@ export const adminServiceActions = {
accept: 'form', accept: 'form',
permissions: 'admin', permissions: 'admin',
input: z.object({ input: z.object({
label: z.string().min(1).max(50).optional(), label: z.string().min(1).max(50).nullable(),
value: z.string().url(), value: z.string().url(),
serviceId: z.number().int().positive(), serviceId: z.number().int().positive(),
}), }),
handler: async (input) => { handler: async (input) => {
const contactMethod = await prisma.serviceContactMethod.create({ const contactMethod = await prisma.serviceContactMethod.create({
data: input, data: {
label: input.label,
value: input.value,
serviceId: input.serviceId,
},
}) })
return { contactMethod } return { contactMethod }
}, },
@@ -203,16 +207,19 @@ export const adminServiceActions = {
accept: 'form', accept: 'form',
permissions: 'admin', permissions: 'admin',
input: z.object({ input: z.object({
id: z.number().int().positive().optional(), id: z.number().int().positive(),
label: z.string().min(1).max(50).optional(), label: z.string().min(1).max(50).nullable(),
value: z.string().url(), value: z.string().url(),
serviceId: z.number().int().positive(), serviceId: z.number().int().positive(),
}), }),
handler: async (input) => { handler: async (input) => {
const { id, ...data } = input
const contactMethod = await prisma.serviceContactMethod.update({ const contactMethod = await prisma.serviceContactMethod.update({
where: { id }, where: { id: input.id },
data, data: {
label: input.label,
value: input.value,
serviceId: input.serviceId,
},
}) })
return { contactMethod } return { contactMethod }
}, },