251 lines
6.1 KiB
TypeScript
251 lines
6.1 KiB
TypeScript
import { t } from "elysia";
|
|
|
|
import { __transformDate__ } from "./__transformDate__";
|
|
|
|
import { __nullable__ } from "./__nullable__";
|
|
|
|
export const ConversationPlain = t.Object(
|
|
{ id: t.String(), createdAt: t.Date() },
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationRelations = t.Object(
|
|
{
|
|
participants: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String(),
|
|
conversationId: t.String(),
|
|
userId: t.String(),
|
|
lastReadAt: __nullable__(t.Date()),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
messages: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String(),
|
|
conversationId: t.String(),
|
|
senderId: t.String(),
|
|
content: t.String(),
|
|
createdAt: t.Date(),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationPlainInputCreate = t.Object(
|
|
{},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationPlainInputUpdate = t.Object(
|
|
{},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationRelationsInputCreate = t.Object(
|
|
{
|
|
participants: t.Optional(
|
|
t.Object(
|
|
{
|
|
connect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
messages: t.Optional(
|
|
t.Object(
|
|
{
|
|
connect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationRelationsInputUpdate = t.Partial(
|
|
t.Object(
|
|
{
|
|
participants: t.Partial(
|
|
t.Object(
|
|
{
|
|
connect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
disconnect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
messages: t.Partial(
|
|
t.Object(
|
|
{
|
|
connect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
disconnect: t.Array(
|
|
t.Object(
|
|
{
|
|
id: t.String({ additionalProperties: false }),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ additionalProperties: false },
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
);
|
|
|
|
export const ConversationWhere = t.Partial(
|
|
t.Recursive(
|
|
(Self) =>
|
|
t.Object(
|
|
{
|
|
AND: t.Union([Self, t.Array(Self, { additionalProperties: false })]),
|
|
NOT: t.Union([Self, t.Array(Self, { additionalProperties: false })]),
|
|
OR: t.Array(Self, { additionalProperties: false }),
|
|
id: t.String(),
|
|
createdAt: t.Date(),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
{ $id: "Conversation" },
|
|
),
|
|
);
|
|
|
|
export const ConversationWhereUnique = t.Recursive(
|
|
(Self) =>
|
|
t.Intersect(
|
|
[
|
|
t.Partial(
|
|
t.Object({ id: t.String() }, { additionalProperties: false }),
|
|
{ additionalProperties: false },
|
|
),
|
|
t.Union([t.Object({ id: t.String() })], {
|
|
additionalProperties: false,
|
|
}),
|
|
t.Partial(
|
|
t.Object({
|
|
AND: t.Union([
|
|
Self,
|
|
t.Array(Self, { additionalProperties: false }),
|
|
]),
|
|
NOT: t.Union([
|
|
Self,
|
|
t.Array(Self, { additionalProperties: false }),
|
|
]),
|
|
OR: t.Array(Self, { additionalProperties: false }),
|
|
}),
|
|
{ additionalProperties: false },
|
|
),
|
|
t.Partial(
|
|
t.Object(
|
|
{ id: t.String(), createdAt: t.Date() },
|
|
{ additionalProperties: false },
|
|
),
|
|
),
|
|
],
|
|
{ additionalProperties: false },
|
|
),
|
|
{ $id: "Conversation" },
|
|
);
|
|
|
|
export const ConversationSelect = t.Partial(
|
|
t.Object(
|
|
{
|
|
id: t.Boolean(),
|
|
createdAt: t.Boolean(),
|
|
participants: t.Boolean(),
|
|
messages: t.Boolean(),
|
|
_count: t.Boolean(),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
);
|
|
|
|
export const ConversationInclude = t.Partial(
|
|
t.Object(
|
|
{ participants: t.Boolean(), messages: t.Boolean(), _count: t.Boolean() },
|
|
{ additionalProperties: false },
|
|
),
|
|
);
|
|
|
|
export const ConversationOrderBy = t.Partial(
|
|
t.Object(
|
|
{
|
|
id: t.Union([t.Literal("asc"), t.Literal("desc")], {
|
|
additionalProperties: false,
|
|
}),
|
|
createdAt: t.Union([t.Literal("asc"), t.Literal("desc")], {
|
|
additionalProperties: false,
|
|
}),
|
|
},
|
|
{ additionalProperties: false },
|
|
),
|
|
);
|
|
|
|
export const Conversation = t.Composite(
|
|
[ConversationPlain, ConversationRelations],
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationInputCreate = t.Composite(
|
|
[ConversationPlainInputCreate, ConversationRelationsInputCreate],
|
|
{ additionalProperties: false },
|
|
);
|
|
|
|
export const ConversationInputUpdate = t.Composite(
|
|
[ConversationPlainInputUpdate, ConversationRelationsInputUpdate],
|
|
{ additionalProperties: false },
|
|
);
|