chore: align migrations, docs, and frontends with crewli.app setup

- Replace dated migrations with ordered 2026_04_07_* chain; fold users update into base migration
- Update OrganisationScope, AppServiceProvider, seeders, api routes, and .env.example
- Refresh Cursor rules, CLAUDE.md, Makefile, README, and docs (API, SCHEMA, SETUP)
- Adjust admin/app/portal HTML, packages, api-client, events types, and theme config
- Update docker-compose and VS Code settings; remove stray Office lock files from resources

Made-with: Cursor
This commit is contained in:
2026-04-07 10:45:34 +02:00
parent 5e2ede14b4
commit fda161ee09
53 changed files with 355 additions and 446 deletions

View File

@@ -20,7 +20,7 @@ pnpm install
```env
VITE_API_URL=http://localhost:8000/api/v1
VITE_APP_NAME="Event Crew Admin"
VITE_APP_NAME="Crewli Admin"
```
4. Start development:
@@ -31,4 +31,6 @@ pnpm dev
## Port
Runs on http://localhost:5173 (Vite default)
Runs on http://localhost:5173 (Vite default).
**Production:** point `VITE_API_URL` at your API, e.g. `https://api.crewli.app/api/v1`, with DNS/TLS for `admin.crewli.app` (and matching Laravel `FRONTEND_ADMIN_URL` / CORS / Sanctum settings — see repo `README.md` and `api/.env.example`).

View File

@@ -6,7 +6,7 @@
<link rel="icon" href="/favicon.ico" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Event Crew Admin</title>
<title>Crewli Admin</title>
<link rel="stylesheet" type="text/css" href="/loader.css" />
</head>

View File

@@ -1,5 +1,5 @@
{
"name": "eventcrew-admin",
"name": "crewli-admin",
"version": "9.5.0",
"private": true,
"type": "module",

View File

@@ -5,7 +5,7 @@ import type { AxiosInstance, InternalAxiosRequestConfig } from 'axios'
/**
* Single axios instance for the real Laravel API (VITE_API_URL).
* Auth: Bearer token from cookie 'accessToken' (set by login).
* Use this for all event-crew API calls; useApi (composables/useApi) stays for Vuexy demo/mock endpoints.
* Use this for all Crewli API calls; useApi (composables/useApi) stays for Vuexy demo/mock endpoints.
*/
const apiClient: AxiosInstance = axios.create({
baseURL: import.meta.env.VITE_API_URL,

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import { useEvents } from '@/composables/useEvents'
import { useRoute, useRouter } from 'vue-router'
import type { EventCrewEventStatus, UpdateEventData } from '@/types/events'
import type { CrewliEventStatus, UpdateEventData } from '@/types/events'
definePage({
meta: {
@@ -17,7 +17,7 @@ const eventId = computed(() => route.params.id as string)
const formData = ref<UpdateEventData>({})
const statusOptions: { title: string; value: EventCrewEventStatus }[] = [
const statusOptions: { title: string; value: CrewliEventStatus }[] = [
{ title: 'Draft', value: 'draft' },
{ title: 'Published', value: 'published' },
{ title: 'Registration open', value: 'registration_open' },

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import { useEvents } from '@/composables/useEvents'
import { useRouter } from 'vue-router'
import type { CreateEventData, EventCrewEventStatus } from '@/types/events'
import type { CreateEventData, CrewliEventStatus } from '@/types/events'
definePage({
meta: {
@@ -21,7 +21,7 @@ const formData = ref<CreateEventData>({
status: 'draft',
})
const statusOptions: { title: string; value: EventCrewEventStatus }[] = [
const statusOptions: { title: string; value: CrewliEventStatus }[] = [
{ title: 'Draft', value: 'draft' },
{ title: 'Published', value: 'published' },
{ title: 'Registration open', value: 'registration_open' },

View File

@@ -17,8 +17,8 @@ export interface Pagination {
to: number | null
}
/** EventCrew festival / multi-day event (API resource). */
export type EventCrewEventStatus =
/** Crewli festival / multi-day event (API resource). */
export type CrewliEventStatus =
| 'draft'
| 'published'
| 'registration_open'
@@ -41,7 +41,7 @@ export interface Event {
start_date: string
end_date: string
timezone: string
status: EventCrewEventStatus
status: CrewliEventStatus
created_at: string
updated_at: string
organisation?: OrganisationSummary
@@ -53,7 +53,7 @@ export interface CreateEventData {
start_date: string
end_date: string
timezone?: string
status?: EventCrewEventStatus
status?: CrewliEventStatus
}
export interface UpdateEventData extends Partial<CreateEventData> {}