# MedReport README

## Prerequisites

```json
"node": ">=20.0.0",
"pnpm": ">=9.0.0"
```

## Project structure

```text
/ app - pages
/ components - custom components, helper components that not provided by any package. Place to extend an redefine components from packages
/ config - bunch of configs, that are provided by starter kit.
/ content - (temporary?) - to be removed when cleaned all dependencies
/ fonts - (temporary) - contains fonts, should be relocated to another place (maybe public)
/ lib - diffirent libs, services, utils
    - fonts.ts - project fonts setup, which becomes available as a global css variable
    / i18n - translations/localization setup
/ public - public assets
    / locales - translations under a corresponding local - at a specific namespace
/ styles - all styles of the projects, including tailwind variable setup
    - global.css - Global styles for the entire application, a place where should apply variables to global selectors
    - shadcn-ui.css - A place where all global variables are defined for color, sizes and etc, that are used in theme.css. Variables defined here and in theme.css are available as tailwindcss property-class
    - theme.css - more specific variables,  available as tailwindcss property-class
    - makerkit.css - Makerkit-specific global styles
    - markdoc.css - Styles for Markdoc Markdown files.
    -
/ supabase - primary supabase
/ tooling - a workspace package, used for generation packages in node_modules and provides global links for its data. The most important is typescript config
/ utils
```

## Migration from old structure

```bash
pnpm clean
pnpm i
```

if you get missing dependency error do `pnpm i --force`

## Adding new dependency

```bash
pnpm add <pacakge-name> -w
```

## Supabase

Start supabase in docker

```bash
npm run supabase:start
```

Link your local supabase with a supabase project

```bash
npm run supabase:deploy
```

After editing supabase tables/functions etc update migration files

```bash
npm run supabase:db:diff
```

To update database types run:

```bash
npm run supabase:typegen:app
```

## Medusa store

To get medusa store working you need to update the env's to your running medusa app and migrate the tables from medusa project to your supabase project

You can get `NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY` from your medusa app settings

## Super admin

To access admin pages follow these steps:

- Register new user
- Go to Profile and add Multi-Factor Authentication
- Authenticate with mfa (at current time profile page prompts it again)
- update your role. look at `supabase/sql/super-admin.sql`
- Sign out and Sign in

## Company User

- With admin account go to `http://localhost:3000/admin/accounts`
- For Create Company Account to work you need to have rows in `medreport.roles` table. For that you can sql in `supabase/sql/super-admin.sql`

## Start email server

`docker run -p 1080:1080 -p 1025:1025 maildev/maildev`

- [View emails](http://localhost:1080/#/)
- Mail server is running on `localhost:1025` without password
