-module(jchat_dev). -export([seed_data/0, create_sample_conversations/0]). -include("jchat.hrl"). %% Create sample data for development/testing seed_data() -> create_sample_users(), create_sample_conversations(), ok. %% Create sample users create_sample_users() -> Users = [ {<<"user1">>, <<"Alice">>}, {<<"user2">>, <<"Bob">>}, {<<"user3">>, <<"Charlie">>} ], lists:foreach(fun({UserId, Username}) -> jchat_db:create_user(UserId, #{ <<"username">> => Username }) end, Users). %% Create sample conversations create_sample_conversations() -> % Conversation 1: General chat Conv1Id = jchat_utils:generate_id(), jchat_db:create_conversation(Conv1Id, #{ title => <<"General Chat">>, description => <<"General discussion for everyone">>, is_archived => false, is_muted => false, participant_ids => [<<"user1">>, <<"user2">>, <<"user3">>], metadata => #{} }), % Add some messages to conversation 1 create_sample_messages(Conv1Id, [ {<<"user1">>, <<"Hello everyone! 👋">>}, {<<"user2">>, <<"Hey Alice! How's it going?">>}, {<<"user3">>, <<"Good morning all!">>} ]), % Conversation 2: Project discussion Conv2Id = jchat_utils:generate_id(), jchat_db:create_conversation(Conv2Id, #{ title => <<"JCHAT Project">>, description => <<"Discussion about the JCHAT implementation">>, is_archived => false, is_muted => false, participant_ids => [<<"user1">>, <<"user2">>], metadata => #{} }), % Add some messages to conversation 2 create_sample_messages(Conv2Id, [ {<<"user1">>, <<"The server is working great now!">>}, {<<"user2">>, <<"Awesome! Ready to test the client integration.">>} ]), ok. %% Helper to create sample messages create_sample_messages(ConversationId, Messages) -> lists:foldl(fun({SenderId, Body}, N) -> MessageId = jchat_utils:generate_id(), jchat_db:create_message(MessageId, #{ conversation_id => ConversationId, sender_id => SenderId, body => Body, body_type => <<"text/plain">>, attachments => null, reply_to_message_id => null, is_system_message => false, metadata => #{} }), % Update conversation with last message info jchat_db:update_conversation(ConversationId, #{ last_message_id => MessageId, message_count => N + 1 }), N + 1 end, 0, Messages).