// data.jsx — static workspace config for the Idea Pipeline app.
//
// USERS and PROJECTS are now LIVE data, loaded from Cloud Firestore at runtime
// (see firebase-init.js + app.jsx). They are declared here as stable, empty array
// references and populated in place after sign-in, so any module that destructures
// them at load time (board/roles/views/components) still observes the loaded data.

const USERS = [];      // <- filled from Firestore `users` collection
const PROJECTS = [];   // <- stable ref; live project state lives in App
let ME = null;         // <- current user's uid, set after sign-in

const STAGES = [
  { id: 'pending',   label: 'Pending',     hint: 'Not started yet' },
  { id: 'inprocess', label: 'In Process',  hint: 'Being worked on' },
  { id: 'complete',  label: 'Complete',    hint: 'Done & verified' },
];

const PRIORITIES = {
  high:   { label: 'High',   hue: 14  },
  medium: { label: 'Medium', hue: 38  },
  low:    { label: 'Low',    hue: 215 },
};

const IDEA_STATUS = {
  idea:     { label: 'Idea',      hue: 268 },
  active:   { label: 'Active',    hue: 152 },
  onhold:   { label: 'On Hold',   hue: 38  },
  launched: { label: 'Launched',  hue: 200 },
};

// ---- workspace roles & permissions ----
const ROLES = {
  owner:   { label: 'Owner',   hue: 262, desc: 'Full control of the workspace, members, billing and every project.' },
  manager: { label: 'Manager', hue: 200, desc: 'Runs projects — creates ideas, assigns tasks and manages expenses.' },
  member:  { label: 'Member',  hue: 152, desc: 'Works on assigned tasks, logs expenses and joins discussions.' },
  viewer:  { label: 'Viewer',  hue: 38,  desc: 'Read-only access to projects, tasks and reports.' },
};
const ROLE_ORDER = ['owner', 'manager', 'member', 'viewer'];

// each item: which roles are allowed (1 = yes)
const PERMISSIONS = [
  { group: 'Business Ideas', items: [
    { key: 'View all ideas',              roles: { owner: 1, manager: 1, member: 1, viewer: 1 } },
    { key: 'Create a new idea',           roles: { owner: 1, manager: 1, member: 0, viewer: 0 } },
    { key: 'Edit idea details & status',  roles: { owner: 1, manager: 1, member: 0, viewer: 0 } },
    { key: 'Delete or archive an idea',   roles: { owner: 1, manager: 0, member: 0, viewer: 0 } },
  ] },
  { group: 'Tasks', items: [
    { key: 'View tasks',                  roles: { owner: 1, manager: 1, member: 1, viewer: 1 } },
    { key: 'Create & assign tasks',       roles: { owner: 1, manager: 1, member: 0, viewer: 0 } },
    { key: 'Move tasks across stages',    roles: { owner: 1, manager: 1, member: 1, viewer: 0 } },
    { key: 'Edit any task',               roles: { owner: 1, manager: 1, member: 0, viewer: 0 } },
    { key: 'Edit tasks assigned to me',   roles: { owner: 1, manager: 1, member: 1, viewer: 0 } },
  ] },
  { group: 'Expenses', items: [
    { key: 'View expense reports',        roles: { owner: 1, manager: 1, member: 1, viewer: 1 } },
    { key: 'Add / edit task costs',       roles: { owner: 1, manager: 1, member: 1, viewer: 0 } },
    { key: 'Export expense statement',    roles: { owner: 1, manager: 1, member: 0, viewer: 0 } },
  ] },
  { group: 'Discussion', items: [
    { key: 'Read comments',               roles: { owner: 1, manager: 1, member: 1, viewer: 1 } },
    { key: 'Post comments',               roles: { owner: 1, manager: 1, member: 1, viewer: 0 } },
  ] },
  { group: 'Team & Workspace', items: [
    { key: 'Invite & remove members',     roles: { owner: 1, manager: 0, member: 0, viewer: 0 } },
    { key: 'Change member roles',         roles: { owner: 1, manager: 0, member: 0, viewer: 0 } },
    { key: 'Manage workspace settings',   roles: { owner: 1, manager: 0, member: 0, viewer: 0 } },
  ] },
];

window.SEED = { USERS, ME, STAGES, PRIORITIES, IDEA_STATUS, PROJECTS, ROLES, ROLE_ORDER, PERMISSIONS };
