593 lines
15 KiB
TypeScript
593 lines
15 KiB
TypeScript
// src/_mock/_blog.ts
|
|
import { PrismaClient } from '@prisma/client';
|
|
const prisma = new PrismaClient();
|
|
import { uuidv4 } from './utils/uuidv4';
|
|
import { _mock } from './_mock';
|
|
import { CONFIG } from './global-config';
|
|
import { _tags } from './assets';
|
|
import { fSub } from './utils/set-date';
|
|
import { fileList } from './_files.ts';
|
|
|
|
export const _contacts = () =>
|
|
Array.from({ length: 20 }, (_, index) => ({
|
|
id: _mock.id(index),
|
|
role: _mock.role(index),
|
|
email: _mock.email(index),
|
|
name: _mock.fullName(index),
|
|
lastActivity: _mock.time(index),
|
|
address: _mock.fullAddress(index),
|
|
avatarUrl: _mock.image.avatar(index),
|
|
phoneNumber: _mock.phoneNumber(index),
|
|
status:
|
|
([0, 1, 6, 12].includes(index) && 'online') ||
|
|
([3, 8, 14].includes(index) && 'offline') ||
|
|
([4, 10, 16].includes(index) && 'busy') ||
|
|
'always'
|
|
}));
|
|
|
|
export const _conversations = () => {
|
|
const myContact = {
|
|
id: '8864c717-587d-472a-929a-8e5f298024da-0',
|
|
role: 'admin',
|
|
status: 'online',
|
|
name: 'Jaydon Frankie',
|
|
email: 'demo@minimals.cc',
|
|
phoneNumber: '+40 777666555',
|
|
address: '90210 Broadway Blvd',
|
|
avatarUrl: _mock.image.avatar(24),
|
|
lastActivity: fSub({ minutes: 1 })
|
|
};
|
|
|
|
const files = fileList();
|
|
|
|
const otherContacts = _contacts();
|
|
|
|
return [
|
|
{
|
|
id: otherContacts[1].id,
|
|
participants: [myContact, otherContacts[1]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[1].id,
|
|
body: _mock.sentence(1),
|
|
contentType: 'text',
|
|
attachments: files.slice(0, 1),
|
|
createdAt: fSub({ hours: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(2),
|
|
contentType: 'text',
|
|
attachments: files.slice(1, 2),
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[1].id,
|
|
body: _mock.sentence(3),
|
|
contentType: 'text',
|
|
attachments: files.slice(2, 3),
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(4),
|
|
contentType: 'text',
|
|
attachments: files.slice(3, 6),
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[1].id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: files.slice(6, 10),
|
|
createdAt: fSub({ hours: 1 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[1].id,
|
|
attachments: [],
|
|
contentType: 'image',
|
|
body: _mock.image.cover(4),
|
|
createdAt: fSub({ minutes: 15 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
contentType: 'text',
|
|
attachments: [],
|
|
body: _mock.sentence(6),
|
|
createdAt: fSub({ minutes: 1 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ minutes: 0 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[2].id,
|
|
participants: [myContact, otherContacts[2]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[2].id,
|
|
body: _mock.sentence(2),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 6 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(3),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[2].id,
|
|
body: _mock.sentence(4),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 7 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[2].id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[2].id,
|
|
body: _mock.image.cover(7),
|
|
attachments: [],
|
|
contentType: 'image',
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(8),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 1 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[3].id,
|
|
participants: [myContact, otherContacts[3]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.sentence(3),
|
|
contentType: 'text',
|
|
attachments: files.slice(0, 1),
|
|
createdAt: fSub({ hours: 8 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(4),
|
|
contentType: 'text',
|
|
attachments: files.slice(1, 2),
|
|
createdAt: fSub({ hours: 7 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 6 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: files.slice(2, 4),
|
|
createdAt: fSub({ hours: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.image.cover(8),
|
|
contentType: 'image',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.image.cover(9),
|
|
contentType: 'image',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 2 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[4].id,
|
|
participants: [myContact, otherContacts[4]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 8,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[4].id,
|
|
body: _mock.sentence(4),
|
|
contentType: 'text',
|
|
attachments: files.slice(2, 4),
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: files.slice(4, 6),
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[4].id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 1 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(8),
|
|
contentType: 'text',
|
|
attachments: files.slice(6, 10),
|
|
createdAt: fSub({ minutes: 45 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[4].id,
|
|
body: _mock.sentence(9),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ minutes: 5 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[5].id,
|
|
participants: [myContact, otherContacts[5]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ minutes: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[5].id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ seconds: 30 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[6].id,
|
|
participants: [myContact, otherContacts[6]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[6].id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 1 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: `${_mock.id(1)}gr`,
|
|
participants: [myContact, ...otherContacts.slice(6, 11)],
|
|
type: 'GROUP',
|
|
unreadCount: 2,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[9].id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[10].id,
|
|
body: _mock.sentence(8),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[8].id,
|
|
body: _mock.sentence(9),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
attachments: [],
|
|
body: _mock.sentence(10),
|
|
contentType: 'text',
|
|
createdAt: fSub({ hours: 1 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[6].id,
|
|
body: _mock.sentence(11),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ minutes: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[7].id,
|
|
body: _mock.sentence(12),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ seconds: 30 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[7].id,
|
|
participants: [myContact, otherContacts[7]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(7),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ days: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[7].id,
|
|
body: _mock.sentence(8),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ days: 3 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[8].id,
|
|
participants: [myContact, otherContacts[8]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(8),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 9 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[8].id,
|
|
body: _mock.sentence(9),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 8 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[9].id,
|
|
participants: [myContact, otherContacts[9]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(9),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 5 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[9].id,
|
|
body: _mock.sentence(10),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ hours: 3 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: `${_mock.id(2)}gr`,
|
|
participants: [myContact, ...otherContacts.slice(1, 5)],
|
|
type: 'GROUP',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(1),
|
|
contentType: 'text',
|
|
attachments: files.slice(0, 5),
|
|
createdAt: fSub({ hours: 4 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[1].id,
|
|
body: _mock.sentence(2),
|
|
contentType: 'text',
|
|
attachments: files.slice(5, 6),
|
|
createdAt: fSub({ hours: 3 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[2].id,
|
|
body: _mock.sentence(3),
|
|
contentType: 'text',
|
|
attachments: files.slice(6, 7),
|
|
createdAt: fSub({ hours: 2 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[4].id,
|
|
body: _mock.sentence(4),
|
|
contentType: 'text',
|
|
attachments: files.slice(7, 8),
|
|
createdAt: fSub({ hours: 1 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(5),
|
|
contentType: 'text',
|
|
attachments: files.slice(8, 9),
|
|
createdAt: fSub({ minutes: 30 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[3].id,
|
|
body: _mock.sentence(6),
|
|
contentType: 'text',
|
|
attachments: files.slice(9, 10),
|
|
createdAt: fSub({ minutes: 10 })
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: otherContacts[10].id,
|
|
participants: [myContact, otherContacts[10]],
|
|
type: 'ONE_TO_ONE',
|
|
unreadCount: 0,
|
|
messages: [
|
|
{
|
|
id: uuidv4(),
|
|
senderId: myContact.id,
|
|
body: _mock.sentence(10),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ days: 11 })
|
|
},
|
|
{
|
|
id: uuidv4(),
|
|
senderId: otherContacts[10].id,
|
|
body: _mock.sentence(11),
|
|
contentType: 'text',
|
|
attachments: [],
|
|
createdAt: fSub({ days: 10 })
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
const temp_conversations = _conversations();
|
|
|
|
async function chat() {
|
|
for (let i = 0; i < temp_conversations.length; i++) {
|
|
await prisma.chatMessage.upsert({
|
|
where: { id: i },
|
|
update: {},
|
|
create: temp_conversations[i]
|
|
});
|
|
}
|
|
console.log('generate blog-postitem done');
|
|
}
|
|
|
|
const Chat = chat()
|
|
.then(async () => {
|
|
await prisma.$disconnect();
|
|
})
|
|
.catch(async (e) => {
|
|
console.error(e);
|
|
await prisma.$disconnect();
|
|
process.exit(1);
|
|
});
|
|
|
|
export { Chat };
|