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

@@ -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> {}