aboutsummaryrefslogtreecommitdiff
path: root/src/queries/prisma/segment.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-24 13:09:50 +0000
committerFuwn <[email protected]>2026-01-24 13:09:50 +0000
commit396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch)
treeb9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /src/queries/prisma/segment.ts
downloadumami-396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b.tar.xz
umami-396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b.zip
Initial commitHEADmain
Created from https://vercel.com/new
Diffstat (limited to 'src/queries/prisma/segment.ts')
-rw-r--r--src/queries/prisma/segment.ts61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/queries/prisma/segment.ts b/src/queries/prisma/segment.ts
new file mode 100644
index 0000000..3a17d27
--- /dev/null
+++ b/src/queries/prisma/segment.ts
@@ -0,0 +1,61 @@
+import type { Prisma } from '@/generated/prisma/client';
+import prisma from '@/lib/prisma';
+import type { QueryFilters } from '@/lib/types';
+
+async function findSegment(criteria: Prisma.SegmentFindUniqueArgs) {
+ return prisma.client.segment.findUnique(criteria);
+}
+
+export async function getSegment(segmentId: string) {
+ return findSegment({
+ where: {
+ id: segmentId,
+ },
+ });
+}
+
+export async function getSegments(criteria: Prisma.SegmentFindManyArgs, filters: QueryFilters) {
+ const { search } = filters;
+ const { getSearchParameters, pagedQuery } = prisma;
+
+ const where: Prisma.SegmentWhereInput = {
+ ...criteria.where,
+ ...getSearchParameters(search, [
+ {
+ name: 'contains',
+ },
+ ]),
+ };
+
+ return pagedQuery('segment', { ...criteria, where }, filters);
+}
+
+export async function getWebsiteSegment(websiteId: string, segmentId: string) {
+ return prisma.client.segment.findFirst({
+ where: { id: segmentId, websiteId },
+ });
+}
+
+export async function getWebsiteSegments(websiteId: string, type: string, filters?: QueryFilters) {
+ return getSegments(
+ {
+ where: {
+ websiteId,
+ type,
+ },
+ },
+ filters,
+ );
+}
+
+export async function createSegment(data: Prisma.SegmentUncheckedCreateInput) {
+ return prisma.client.segment.create({ data });
+}
+
+export async function updateSegment(SegmentId: string, data: Prisma.SegmentUpdateInput) {
+ return prisma.client.segment.update({ where: { id: SegmentId }, data });
+}
+
+export async function deleteSegment(SegmentId: string) {
+ return prisma.client.segment.delete({ where: { id: SegmentId } });
+}