/** Classroom Support — org-scoped and managed from organization scope. */
export const CLASSROOM_SUPPORT_CONTENT_TYPE = 'classroom-strategies';

/** The safety/QBS quiz content type, owned and managed at organization scope. */
export const SAFETY_QUIZ_CONTENT_TYPE = 'safety-qbs-quiz';

/** EI self-assessment questions, owned and managed at organization scope. */
export const EI_ASSESSMENT_CONTENT_TYPE = 'emotional-intelligence-assessment-questions';

/** Personality type quiz content, owned and managed at organization scope. */
export const PERSONALITY_QUIZ_CONTENT_TYPE = 'emotional-intelligence-personality-quiz';

/** Sign card library, owned and managed at organization scope. */
export const SIGN_LANGUAGE_ITEMS_CONTENT_TYPE = 'sign-language-items';

/** ESA funding content — campus-scoped so each campus owns its local guidance. */
export const ESA_CONTENT_TYPE = 'esa-funding-content';

/**
 * **Per-tenant** content types (read/written at the user's own tenant level via
 * `getOwnTenant`; preset at organization + school + campus levels). Dashboard
 * and parent templates span org/school/campus.
 */
export const PER_TENANT_CONTENT_TYPES: ReadonlySet<string> = new Set([
  'dashboard-sign-of-week',
  'dashboard-teacher-images',
  'dashboard-encouraging-quotes',
  'dashboard-compliance-items',
]);

/** **Campus-scoped** content types (class users read the campus row). */
export const CAMPUS_SCOPED_CONTENT_TYPES: ReadonlySet<string> = new Set([
  ESA_CONTENT_TYPE,
]);

/** **School-scoped** content types (one per school). */
export const SCHOOL_SCOPED_CONTENT_TYPES: ReadonlySet<string> = new Set([]);

/** **Org-scoped** content types (one per organization; preset at org creation). */
export const ORG_SCOPED_CONTENT_TYPES: ReadonlySet<string> = new Set([
  SAFETY_QUIZ_CONTENT_TYPE,
  CLASSROOM_SUPPORT_CONTENT_TYPE,
  EI_ASSESSMENT_CONTENT_TYPE,
  PERSONALITY_QUIZ_CONTENT_TYPE,
  'regulation-zones',
  'zones-of-regulation-page-content',
  SIGN_LANGUAGE_ITEMS_CONTENT_TYPE,
  'sign-language-page-content',
  'emotional-intelligence-weekly-topics',
  'emotional-intelligence-growth-tips',
  'emotional-intelligence-team-wellness-metrics',
  'emotional-intelligence-weekly-focus',
  'community-organizations',
  'vocational-opportunities',
]);

/**
 * All tenant-scoped content types (per-tenant ∪ campus ∪ school ∪ org). Truly
 * global personality and classroom-timer catalogs live in frontend static
 * constants.
 */
export const TENANT_SCOPED_CONTENT_TYPES: ReadonlySet<string> = new Set([
  ...PER_TENANT_CONTENT_TYPES,
  ...CAMPUS_SCOPED_CONTENT_TYPES,
  ...SCHOOL_SCOPED_CONTENT_TYPES,
  ...ORG_SCOPED_CONTENT_TYPES,
]);
