interface IRoom {
	id: number;
	name: string;
	type: string;
}
 
interface IMessage {
	roomId: IRoom['id'];
	id: number;
	text: string;
	ts: Date
}
 
// Эндпоинт '/rooms' возвращает IRoom[]
// Эндпоинт '/messages' возвращает IMessage[]
/*
Необходимо запросить сообщения и комнаты и сгруппировать сообщения по дням
*/
 
type ProcessedMessage = Omit<IMessage, 'roomId'> & {
	roomName: IRoom['name'];
};
 
type ProcessedData = Record<string,ProcessedMessage>
// при этом строковый ключ - ISO представление даты начала дня ('2022-06-23T00:00:00')
// Пример результата:
{ '2023-03-23T00:00:00': // ISO представления даты начала дня
	[
		{
			"roomName": "Room name", // название комнаты из rooms
		   "id": 1,
		   "text": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
		   "ts": Thu Mar 23 2023 12:15:15 GMT+0200 (Восточная Европа, стандартное время)
		}
	],
...
}
 

Назад