const excludeAttributes = [ ]; const jsonbSchemas = { // Add here }; // Different exclude sets per role const adminExclude = [ ...excludeAttributes, // admins can see audit fields, so nothing extra excluded ]; const userExclude = [ ...excludeAttributes, // regular users cannot see audit trails "created_by", "updated_by", "deleted_by", "deleted_at", ]; const computedAttributes = [ { key: "unitCount", label: "Units", type: "number", order: 5, literal: `( SELECT CAST(COUNT(*) AS INTEGER) FROM "units" WHERE "units"."course_id" = "Course"."course_id" AND "units"."deletedAt" IS NULL )`, filterable: false, }, { key: "lessonCount", label: "Lessons", type: "number", order: 6, literal: `( SELECT CAST(COUNT(*) AS INTEGER) FROM "lessons" INNER JOIN "units" ON "lessons"."unit_id" = "units"."unit_id" WHERE "units"."course_id" = "Course"."course_id" AND "lessons"."deletedAt" IS NULL )`, filterable: false, }, ]; module.exports = { excludeAttributes, adminExclude, userExclude, jsonbSchemas, computedAttributes };