namespace AIStudio.Assistants.BeyondFactsLab; /// /// Every field of the forms "Your details" in the BeyondFacts Lab. /// /// /// The forms store their values under the IDs of the fields and options, so these IDs never change. A field which /// is no longer needed keeps its ID reserved. The texts of the fields come from BflFieldTexts. /// public static class BflFieldCatalog { // Event details: public const string FORMAT = "format"; public const string EVENT_TOPIC = "event_topic"; public const string AUDIENCE = "audience"; public const string CONTRIBUTION_TOPIC = "contribution_topic"; public const string EVENT_DATE = "event_date"; public const string EVENT_LOCATION = "event_location"; public const string EVENT_DURATION = "event_duration"; public const string CONTRIBUTION_DURATION = "contribution_duration"; public const string OTHER_PARTICIPANTS = "other_participants"; public const string EVENT_LINK = "event_link"; // Knowledge and uncertainty: public const string CONTRIBUTION_SUMMARY = "contribution_summary"; public const string CORE_THESES = "core_theses"; public const string UNCERTAINTIES = "uncertainties"; public const string MATERIAL_NOTES = "material_notes"; // Goals and role: public const string GOALS = "goals"; public const string GOAL_DIRECTIONS = "goal_directions"; // Values and perspectives: public const string VALUES_AND_CONCERNS = "values_and_concerns"; public const string PERSONAL_CONCERN = "personal_concern"; public const string OTHER_PERSPECTIVES = "other_perspectives"; // Strategy: public const string COMMUNICATION_WORRIES = "communication_worries"; // Test situation: public const string QUESTION_TYPE = "question_type"; public const string DIFFICULTY = "difficulty"; public const string TEST_NOTES = "test_notes"; // Results and materials: public const string POSITION_CHANGES = "position_changes"; // The options of the directions of a goal: public const string GOAL_INFORM = "goal_inform"; public const string GOAL_MODERATE = "goal_moderate"; public const string GOAL_TAKE_POSITION = "goal_take_position"; public const string GOAL_RAISE_AWARENESS = "goal_raise_awareness"; public const string GOAL_SHOW_OPTIONS = "goal_show_options"; public const string GOAL_INFLUENCE_POLICY = "goal_influence_policy"; // The options of the type of questions: public const string QUESTIONS_MIXED = "questions_mixed"; public const string QUESTIONS_SCIENTIFIC_CRITICISM = "questions_scientific_criticism"; public const string QUESTIONS_EMOTIONAL_CRITICISM = "questions_emotional_criticism"; public const string QUESTIONS_MANIPULATIVE = "questions_manipulative"; public const string QUESTIONS_POLITICAL_INSTRUMENTALIZATION = "questions_political_instrumentalization"; // The options of the difficulty: public const string DIFFICULTY_MODERATE = "difficulty_moderate"; public const string DIFFICULTY_DEMANDING = "difficulty_demanding"; public const string DIFFICULTY_VERY_DEMANDING = "difficulty_very_demanding"; /// /// Every field, step by step, in the order the forms show them. /// public static readonly IReadOnlyList FIELDS = [ new(FORMAT, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE) { IsKeyDetail = true, IsSharedWithResearch = true }, new(EVENT_TOPIC, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE) { IsKeyDetail = true, IsSharedWithResearch = true }, new(AUDIENCE, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE) { IsKeyDetail = true }, // The topic of the contribution may be unpublished, so it never reaches the research: new(CONTRIBUTION_TOPIC, BflStep.FRAMEWORK, BflFieldKind.MULTI_LINE) { IsKeyDetail = true }, new(EVENT_DATE, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE) { IsSharedWithResearch = true }, new(EVENT_LOCATION, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE) { IsSharedWithResearch = true }, new(EVENT_DURATION, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE), new(CONTRIBUTION_DURATION, BflStep.FRAMEWORK, BflFieldKind.SINGLE_LINE), new(OTHER_PARTICIPANTS, BflStep.FRAMEWORK, BflFieldKind.MULTI_LINE) { IsSharedWithResearch = true, NameRole = BflNameRole.PARTICIPANTS }, new(EVENT_LINK, BflStep.FRAMEWORK, BflFieldKind.LINK) { IsSharedWithResearch = true }, new(CONTRIBUTION_SUMMARY, BflStep.KNOWLEDGE, BflFieldKind.MULTI_LINE) { IsKeyDetail = true }, new(CORE_THESES, BflStep.KNOWLEDGE, BflFieldKind.MULTI_LINE), new(UNCERTAINTIES, BflStep.KNOWLEDGE, BflFieldKind.MULTI_LINE), new(MATERIAL_NOTES, BflStep.KNOWLEDGE, BflFieldKind.MULTI_LINE), new(GOALS, BflStep.GOALS_AND_ROLE, BflFieldKind.MULTI_LINE), new(GOAL_DIRECTIONS, BflStep.GOALS_AND_ROLE, BflFieldKind.MULTI_CHOICE) { Options = [new(GOAL_INFORM), new(GOAL_MODERATE), new(GOAL_TAKE_POSITION), new(GOAL_RAISE_AWARENESS), new(GOAL_SHOW_OPTIONS), new(GOAL_INFLUENCE_POLICY)], }, new(VALUES_AND_CONCERNS, BflStep.VALUES_AND_PERSPECTIVES, BflFieldKind.MULTI_LINE), new(PERSONAL_CONCERN, BflStep.VALUES_AND_PERSPECTIVES, BflFieldKind.MULTI_LINE) { IsPersonalDisclosure = true }, new(OTHER_PERSPECTIVES, BflStep.VALUES_AND_PERSPECTIVES, BflFieldKind.MULTI_LINE), new(COMMUNICATION_WORRIES, BflStep.STRATEGY, BflFieldKind.MULTI_LINE), new(QUESTION_TYPE, BflStep.TEST_SITUATION, BflFieldKind.CHOICE) { Options = [new(QUESTIONS_MIXED), new(QUESTIONS_SCIENTIFIC_CRITICISM), new(QUESTIONS_EMOTIONAL_CRITICISM), new(QUESTIONS_MANIPULATIVE), new(QUESTIONS_POLITICAL_INSTRUMENTALIZATION)], }, new(DIFFICULTY, BflStep.TEST_SITUATION, BflFieldKind.CHOICE) { Options = [new(DIFFICULTY_MODERATE), new(DIFFICULTY_DEMANDING), new(DIFFICULTY_VERY_DEMANDING)], }, new(TEST_NOTES, BflStep.TEST_SITUATION, BflFieldKind.MULTI_LINE), new(POSITION_CHANGES, BflStep.RESULTS, BflFieldKind.MULTI_LINE), ]; /// /// Gets the fields of a step, in the order its form shows them. /// /// The step. public static IReadOnlyList ForStep(BflStep step) => [.. FIELDS.Where(field => field.Step == step)]; }