<!-- source-hash: 347abba356d14a3c4bf7cf70892add4e -->
Defines TypeScript interfaces and types for the Case Study content entity within the Flamingo/OpenMSP platform, following the same structural pattern as `blog.ts`.

## Key Components

| Export | Type | Description |
|--------|------|-------------|
| `CaseStudy` | `interface` | Full case study record with all fields, relations, and metadata |
| `CreateCaseStudyData` | `interface` | Payload shape for creating a new case study |
| `UpdateCaseStudyData` | `type` | Partial version of `CreateCaseStudyData` for updates |
| `CaseStudyFilters` | `interface` | Query filter options for listing/searching case studies |
| `CaseStudyListResponse` | `interface` | Paginated response wrapper for case study arrays |

## Usage Example

```typescript
import type {
  CaseStudy,
  CreateCaseStudyData,
  CaseStudyFilters,
  CaseStudyListResponse
} from './case-study'

// Create a new case study
const payload: CreateCaseStudyData = {
  title: 'How Acme IT Reduced Ticket Volume by 40%',
  slug: 'acme-it-ticket-reduction',
  status: 'draft',
  author_id: 'uuid-author',
  platforms: ['uuid-platform-1'],
  tags: [1, 2],
  challenge: 'High volume of repetitive L1 tickets...',
  solution: 'Deployed Mingo AI with automated triage...',
  results: '40% reduction in ticket volume in 30 days.',
  testimonial_video_url: 'https://www.youtube.com/watch?v=EXAMPLE',
}

// Filter published case studies by industry
const filters: CaseStudyFilters = {
  industry: 'healthcare',
  status: 'published',
  limit: 10,
  offset: 0,
}

// Typed paginated response
const response: CaseStudyListResponse = await fetchCaseStudies(filters)
console.log(response.count, response.data)
```

## Notes

- **Video fields**: `testimonial_video_url` (YouTube, preferred) and `main_video_url` (uploaded fallback) follow the same `ENTITY_FIELD_CONFIG` convention used across `customer_interviews`, `webinars`, `podcasts`, and `investor_updates`.
- **MSP relation**: Company, industry, and testimonial data are resolved indirectly via `user.msp_id`, not stored directly on the case study.
- `video_source_type` is deprecated — consumers should detect source from URL presence instead.