function createPoll(title) {
  return {
    title,
    options: []
  };
}
function addOption(poll, text) {
  poll.options.push({
    id: crypto.randomUUID(),
    text,
    votes: []
  });
}
function hasVoted(poll, optionId, peerId) {
  const option = poll.options.find((o) => o.id === optionId);
  if (!option) return false;
  return option.votes.includes(peerId);
}
function vote(poll, optionId, peerId) {
  const option = poll.options.find((o) => o.id === optionId);
  if (!option) return;
  if (option.votes.includes(peerId)) return;
  option.votes.push(peerId);
}
function unvote(poll, optionId, peerId) {
  const option = poll.options.find((o) => o.id === optionId);
  if (!option) return;
  const idx = option.votes.indexOf(peerId);
  if (idx !== -1) {
    option.votes.splice(idx, 1);
  }
}
export {
  addOption as a,
  createPoll as c,
  hasVoted as h,
  unvote as u,
  vote as v
};
