@extends('crm.layouts.app') @section('title', 'Tattoo Projects') @section('content')

Tattoo Projects

Manage multi-session tattoo projects and track progress across sessions.

New Project
map(fn($a) => ['id' => $a->id, 'name' => $a->name])->values()) }}, getLabel() { if (!this.selected) return 'All Artists'; const artist = this.artists.find(a => a.id == this.selected); return artist ? artist.name : 'All Artists'; }, selectArtist(artistId) { this.selected = artistId; this.open = false; this.$refs.form.submit(); } }">
map(fn($c) => ['id' => $c->id, 'name' => $c->name])->values()) }}, getLabel() { if (!this.selected) return 'All Clients'; const client = this.clients.find(c => c.id == this.selected); return client ? client.name : 'All Clients'; }, selectClient(clientId) { this.selected = clientId; this.open = false; this.$refs.form.submit(); } }">
@if($projects->count() > 0)
@foreach($projects as $project)
@php $statusColors = [ 'planning' => 'bg-gray-50 text-gray-600 ring-gray-500/10', 'active' => 'bg-blue-50 text-blue-700 ring-blue-700/10', 'completed' => 'bg-green-50 text-green-700 ring-green-600/20', 'cancelled' => 'bg-red-50 text-red-700 ring-red-600/20' ]; $colorClass = $statusColors[$project->status] ?? 'bg-gray-50 text-gray-600 ring-gray-500/10'; @endphp {{ ucfirst($project->status) }}
{{ $project->client->name }}
{{ $project->artist->name }}
@if($project->body_part)
{{ ucfirst($project->body_part) }}
@endif
Progress {{ $project->getProgressPercentage() }}%
{{ $project->getCompletedSessions() }}/{{ $project->sessions->count() }} sessions @if($project->estimated_total_cost) ${{ number_format($project->estimated_total_cost, 2) }} @endif
@if($project->description)

{{ $project->description }}

@endif
@endforeach
@if($projects->hasPages()) @endif @else

No tattoo projects

Get started by creating your first multi-session tattoo project.

New Project
@endif @endsection