#pragma once

#include <cstdint>
#include <string>
#include <vector>

namespace obb::mycityhall {

enum class Step : uint8_t {
  kDraft,
  kDeliberation,
  kVote,
  kPublication,
  kArchived,
};

struct Dossier {
  std::string id;          // UID local (hash doc)
  std::string title;
  std::string author;
  Step step = Step::kDraft;
  uint32_t created_at = 0;
  uint32_t updated_at = 0;
  bool citizen_readonly = false;
};

void workflow_init();
void push_dossier(const Dossier &dossier);
void advance_step(const std::string &id);
std::vector<Dossier> list_active();

}  // namespace obb::mycityhall