# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- `Image` concrete model to handle all instances.
- API endpoint `/api/v1/images/` to add, update and delete images.

### Changed

- The `program/rrule.json` fixture contains all the supported recurrence rules.
- The `Host`, `Note` and `Show` models reference the new `Image` model.
- The `HostSerializer`, `NoteSerializer` and `ShowSerializer` reference image.
- The `Host.image` and `Show.image` fields are nullable in their serializers.
- The `ppoi` field in the image serializer is updatable.
- The `logo` field i the `Show` model is a reference to `Image`.
- The `alt_text` and `credits` fields in the `Image` model are not nullable.
- The "conflict resolution" methods of `Schedule` are now service functions.
- implement show and timeslot filters
- include id for serialized timeslots in REST API
- re-work note viewset to work with updated model
- add dimensions to thumbnails in Image REST API

### Deprecated

- ...

### Removed

- The abstract `ModelWithImageFields` from the program models.
- The `ThumbnailsMixin` from the program serializers.
- The abstract `ModelWithCreatedUpdatedFields` from the program models.

### Fixed

- use kebab-case in URLs
- don’t output invalid PPOI format
- note image should allow null values
- don’t force REST API consumers to set `repetition_of` for timeslots

### Security

- ...

## [1.0-alpha1] - 2023-02-24

Initial release.