mirror of
https://github.com/YuzuZensai/Minikura.git
synced 2026-03-31 07:33:27 +00:00
✨ feat: initial prototype
This commit is contained in:
@@ -1,5 +1,33 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
import { PrismaPg } from "@prisma/adapter-pg";
|
||||
import { Pool } from "pg";
|
||||
import { PrismaClient } from "./generated/prisma";
|
||||
|
||||
export * from "@prisma/client";
|
||||
export * from "./generated/prisma";
|
||||
export type {
|
||||
ReverseProxyCreateInput,
|
||||
ReverseProxyServer,
|
||||
ReverseProxyUpdateInput,
|
||||
ReverseProxyWithEnvVars,
|
||||
} from "./models/reverse-proxy";
|
||||
export type {
|
||||
EnvVariable,
|
||||
Server,
|
||||
ServerCreateInput,
|
||||
ServerUpdateInput,
|
||||
ServerWithEnvVars,
|
||||
} from "./models/server";
|
||||
|
||||
export const prisma = new PrismaClient();
|
||||
export type { SessionWithUser } from "./models/session";
|
||||
|
||||
export { isSessionExpired } from "./models/session";
|
||||
export type {
|
||||
CreateUserInput,
|
||||
UpdateSuspensionInput,
|
||||
UpdateUserInput,
|
||||
} from "./models/user";
|
||||
export { isUserSuspended } from "./models/user";
|
||||
|
||||
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
||||
const adapter = new PrismaPg(pool);
|
||||
|
||||
export const prisma = new PrismaClient({ adapter });
|
||||
|
||||
15
packages/db/src/models/reverse-proxy.ts
Normal file
15
packages/db/src/models/reverse-proxy.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import type {
|
||||
CustomEnvironmentVariable,
|
||||
Prisma,
|
||||
ReverseProxyServer as PrismaReverseProxyServer,
|
||||
} from "../generated/prisma";
|
||||
|
||||
export type ReverseProxyWithEnvVars = Prisma.ReverseProxyServerGetPayload<{
|
||||
include: { env_variables: true };
|
||||
}>;
|
||||
|
||||
export type ReverseProxyCreateInput = Prisma.ReverseProxyServerCreateInput;
|
||||
|
||||
export type ReverseProxyUpdateInput = Prisma.ReverseProxyServerUpdateInput;
|
||||
|
||||
export type ReverseProxyServer = PrismaReverseProxyServer;
|
||||
17
packages/db/src/models/server.ts
Normal file
17
packages/db/src/models/server.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import type {
|
||||
CustomEnvironmentVariable,
|
||||
Prisma,
|
||||
Server as PrismaServer,
|
||||
} from "../generated/prisma";
|
||||
|
||||
export type ServerWithEnvVars = Prisma.ServerGetPayload<{
|
||||
include: { env_variables: true };
|
||||
}>;
|
||||
|
||||
export type ServerCreateInput = Prisma.ServerCreateInput;
|
||||
|
||||
export type ServerUpdateInput = Prisma.ServerUpdateInput;
|
||||
|
||||
export type EnvVariable = Pick<CustomEnvironmentVariable, "key" | "value">;
|
||||
|
||||
export type Server = PrismaServer;
|
||||
11
packages/db/src/models/session.ts
Normal file
11
packages/db/src/models/session.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import type { Prisma, Session as PrismaSession } from "../generated/prisma";
|
||||
|
||||
export type Session = PrismaSession;
|
||||
|
||||
export type SessionWithUser = Prisma.SessionGetPayload<{
|
||||
include: { user: true };
|
||||
}>;
|
||||
|
||||
export function isSessionExpired(session: Pick<Session, "expiresAt">): boolean {
|
||||
return session.expiresAt < new Date();
|
||||
}
|
||||
21
packages/db/src/models/user.ts
Normal file
21
packages/db/src/models/user.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import type { Prisma, User as PrismaUser } from "../generated/prisma";
|
||||
|
||||
export type User = PrismaUser;
|
||||
|
||||
export type CreateUserInput = Prisma.UserCreateInput;
|
||||
|
||||
export type UpdateUserInput = Prisma.UserUpdateInput;
|
||||
|
||||
export type UpdateSuspensionInput = Prisma.UserUpdateInput;
|
||||
|
||||
export function isUserSuspended(user: Pick<PrismaUser, "isSuspended" | "suspendedUntil">): boolean {
|
||||
if (!user.isSuspended) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (user.suspendedUntil && user.suspendedUntil <= new Date()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user