# Data Model

This document defines the data structures for the project, based on the entities identified in the feature specification.

## User
Represents an authenticated user of the admin panel.

- **email**: `string` (required, unique)
- **password**: `string` (required, hashed)
- **role**: `enum` (required, values: `admin`, `editor`)

## Blog Post
Represents a single article.

- **title**: `string` (required)
- **slug**: `string` (required, unique)
- **content**: `richText` (required)
- **author**: `relationship` to `User` (required)
- **category**: `relationship` to `Category` (required)
- **publication_date**: `date` (required)
- **meta_title**: `string` (required)
- **meta_description**: `string` (required)

## Portfolio Item
Represents a single project.

- **title**: `string` (required)
- **slug**: `string` (required, unique)
- **description**: `richText` (required)
- **project_images**: `array` of `media` (required)
- **completion_date**: `date` (required)
- **meta_title**: `string` (required)
- **meta_description**: `string` (required)

## Category
Represents a blog post category.

- **name**: `string` (required)
- **slug**: `string` (required, unique)
