# 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

- `owners` optional field in `Host` model as many-to-many reference to `User` (steering#166)
- `language` and `topic` optional fields in `Note` model (steering#169)
- `contributors` field in `Note` model (steering#159)
- `PRIVILEGED_GROUP` and `ENTITLED_GROUPS` settings to implement groups and permissions (steering#177)
- `FILTER_ACTIVE_SHOWS_USING` settings to filter active shows and OIDC scope claims (steering#175)
- `ShowManager` to annotate a show with its max (last) timeslot start (steering#175)
- `is_active` boolean field in `LinkType` model (steering#187)
- `addtimeslots` management command to renew schedules for one year (steering#108)

### Changed

- **BREAKING:** The IDs of the "owned shows" and the "public shows" are now listed as `ownedShowIds` and `publicShowIds` in the OICD scope claims.
- `note_id` and `show_id` are read-only fields of the `TimeslotSerializer` (steering#171)
- `Note.tags` are exposed as list of strings (steering#158)
- Django’s model permissions and additional custom permissions are now used (steering#177)
- `type` in `Link` model is now foreign key reference to the `LinkType` model. The serializers expect a `typeId` (steering#187)

### Removed

- `note_id` and `show` fields from the `Timeslot` model (steering#171)
- `type` field from `LinkType` model (steering#187)

## [1.0.0-alpha2] - 2023-06-20

### Added

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

### Changed

- The `Host`, `Note`, `Show` models & serializers reference the new `Image`.
- The `logo` field in the `Show` model is a reference to `Image`.
- The "conflict resolution" methods of `Schedule` are now service functions.
- Update all APIs to return attributes / properties in camelCase notation (aura#141)
- Use `_id` suffix for all object reference in REST APIs (aura#166)
- Use blank strings instead of nullable strings in REST APIs (aura#167)
- Upgrade Poetry dependencies and Django to the next LTS version (steering#137)

### 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
- The timeslot generation leaves the `last_date` unset if it is null.
- Note.tags attribute not updated via API (steering#157)
- make subtitle field in Category a CharField

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

Initial release.