# Parks Models

This document outlines the models in the `parks` app.

## `Park`

- **File:** [`parks/models/parks.py`](parks/models/parks.py)
- **Description:** Represents a theme park.

### Fields

- `name` (CharField)
- `slug` (SlugField)
- `description` (TextField)
- `status` (CharField)
- `location` (GenericRelation to `location.Location`)
- `opening_date` (DateField)
- `closing_date` (DateField)
- `operating_season` (CharField)
- `size_acres` (DecimalField)
- `website` (URLField)
- `average_rating` (DecimalField)
- `ride_count` (IntegerField)
- `coaster_count` (IntegerField)
- `operator` (ForeignKey to `parks.Company`)
- `property_owner` (ForeignKey to `parks.Company`)
- `photos` (GenericRelation to `media.Photo`)

## `ParkArea`

- **File:** [`parks/models/areas.py`](parks/models/areas.py)
- **Description:** Represents a themed area within a park.

### Fields

- `park` (ForeignKey to `parks.Park`)
- `name` (CharField)
- `slug` (SlugField)
- `description` (TextField)
- `opening_date` (DateField)
- `closing_date` (DateField)

## `Company`

- **File:** [`parks/models/companies.py`](parks/models/companies.py)
- **Description:** Represents a company that can be an operator or property owner.

### Fields

- `name` (CharField)
- `slug` (SlugField)
- `roles` (ArrayField of CharField)
- `description` (TextField)
- `website` (URLField)
- `founded_year` (PositiveIntegerField)
- `headquarters` (CharField)
- `parks_count` (IntegerField)