* update naming * refactor tests to use shared structure * shorten names * add tools test case * refactor to support multi-tenant * set group_id on creation * initial refactor for multitenant tags/cats * spelling * additional test case for same valued resources * fix recipe update tests * apply indexes to foreign keys * fix performance regressions * handle unknown exception * utility decorator for function debugging * migrate recipe_id to UUID * GUID for recipes * remove unused import * move image functions into package * move utilities to packages dir * update import * linter * image image and asset routes * update assets and images to use UUIDs * fix migration base * image asset test coverage * use ids for categories and tag crud functions * refactor recipe organizer test suite to reduce duplication * add uuid serlization utility * organizer base router * slug routes testing and fixes * fix postgres error * adopt UUIDs * move tags, categories, and tools under "organizers" umbrella * update composite label * generate ts types * fix import error * update frontend types * fix type errors * fix postgres errors * fix #978 * add null check for title validation * add note in docs on multi-tenancy
Components Folder Guide
Domain Components
Domain Components are specific to the domain or section of a website. For example if you have an admin page and a user page that have specific, unshared elements. These can be placed in the Domain/Admin folder.
Rules
- Components should be prefixed with their domain name
- Examples: AdminDashboard, AdminSettings, UserProfile
Global Components
This folder is for widely reused components that provide little functionality and are primarily used for styling or consistency. Primary examples are Card and Button components.
Rules
- Global components cannot container a subfolder to be globally imported
- All elements should start with the 'Base' Prefix
- Examples: BaseButton, BaseCard, BaseTitleSection
Layout Components
The layout folder is for reusable components that are specifically only used in the layouts for the Nuxt Application. They may take props or may not. They should be larger layout style components that don't have wide the ability to be widely reused in the application.
Rules:
- Layout folder should not have a subfolder
- If they take props they should start with a 'App' Prefix.
- Examples: AppSidebar, AppHeader, AppFooter.
- If they do not they should begin with the 'The' prefix
- Examples: TheSidebar, TheHeader, TheFooter.
Page Components
The Page folder is dedicated to 'single-use' component to break up large amounts on content in the pages themselves. A good examples of this is breaking your landing page into separate sections to make it more readable and less monolithic. Page components typically consume other components.
Rules:
- These are last resort components. Only to be used when the page becomes unmanageable.
- Page components should be prefixed with their page name
- Examples: HomeAbout, HomeContact, ClientProfile