bluewave-labs / bluewave-onboarding

https://bluewavelabs.ca
GNU Affero General Public License v3.0
30 stars 22 forks source link

Create migrations for tour, hints, banners and popup_logs table #312

Closed jaykayudo closed 4 weeks ago

jaykayudo commented 1 month ago

Resolves https://github.com/bluewave-labs/bluewave-onboarding/issues/309

coderabbitai[bot] commented 1 month ago

Walkthrough

This pull request introduces four new migration files for creating database tables using Sequelize: banners, popup_logs, tours, and hints. Each migration defines the structure of its respective table, including various columns with specific data types, constraints, and default values. The up methods establish the schema, while the down methods provide the ability to drop the tables if necessary. Indexes are also added in some migrations to enhance query performance.

Changes

File Path Change Summary
backend/migrations/20241022153237-create-banners-table.js Added migration for banners table with columns: id, closeButtonAction, position, url, fontColor, backgroundColor, bannerText, createdBy.
backend/migrations/20241022170915-create-popup_logs-table.js Added migration for popup_logs table with columns: id, popupType, userId, showingTime, completed, including indexes on userId and popupType.
backend/migrations/20241022190720-create-tours-table.js Added migration for tours table with columns: id, title, description, statusActive, pageTargeting, theme, triggeringFrequency, createdBy, including indexes.
backend/migrations/20241022191246-create-hints-table.js Added migration for hints table with columns: id, action, actionButtonUrl, actionButtonText, targetElement, tooltipPlacement, hintContent, header, color fields, createdBy, including indexes.

Assessment against linked issues

Objective Addressed Explanation
Create migrations for Banners, PopupLog, Hints, and Tours (309)

📜 Recent review details **Configuration used: .coderabbit.yaml** **Review profile: CHILL**
📥 Commits Files that changed from the base of the PR and between 2f9fc81df5b5c85ea70624f1065cc8798299d34c and 0aebb7dcbba027dd3da5d67850fec44a7fca0537.
📒 Files selected for processing (1) * backend/migrations/20241022153237-create-banners-table.js (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1) * backend/migrations/20241022153237-create-banners-table.js
--- Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): > ‼️ **IMPORTANT** > Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged. - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
erenfn commented 1 month ago

Are the migrations any different from the models? The question is, will we encounter different behavior when running migrations versus using sequelize.sync()

jaykayudo commented 1 month ago

Are the migrations any different from the models? The question is, will we encounter different behavior when running migrations versus using sequelize.sync()

No it wouldn't as the migrations create new table and does not any update other tables and is not being referenced by any other table. And the migrations is created based on the specifics of the models so they should not encounter different behaviours. You can also check the file changes to verify.

jaykayudo commented 1 month ago

@erenfn does this PR meet the requirements of the task?

erenfn commented 1 month ago

Yes, but do not add checks that are not in the models.

erenfn commented 1 month ago

You also have to include other vallidations. For example:

        validate: {
          isValidAction(value) {
              validateActionButton(value);
          },
        },

These should be in the migrations

jaykayudo commented 1 month ago

You also have to include other vallidations. For example:

        validate: {
          isValidAction(value) {
              validateActionButton(value);
          },
        },

These should be in the migrations

@erenfn Done

erenfn commented 4 weeks ago

Did you push the changes? you just have to change created-by to createdBy

jaykayudo commented 4 weeks ago

Did you push the changes? you just have to change created-by to createdBy

Sorry about that. I mistakely removed it while i was testing.