# Availabilities-reservations data models

## Machines

ONE Availability may have:
- MANY MachinesAvailability (=> MANY Machines)
- MANY Slot: the Availability is cut in smaller slots

ONE Slot may have:
- ONE Availability: a Slot is a slice of ONE Availability
- MANY SlotsReservation: ONE SlotsReservation per (User + Machine + Slot)
  - Bob reserved a 3D printer from 8am to 9am in Availability 1 (=> ONE SlotsReservation)
  - John reserved a Laser cutter from 8am to 9am in Availability 1 (=> ONE SlotsReservation)

ONE SlotsReservation have:
- ONE Slot
- ONE Reservation

ONE Reservation may have:
- MANY SlotsReservation (one per reserved slot, for the associated Machine)
- ONE User
- ONE Machine
- NO Ticket

## Spaces

ONE Availability may have:
- ONE SpacesAvailability (=> ONE Space)
- MANY Slot: the Availability is cut in smaller slots

ONE Slot may have:
- ONE Availability: a Slot is a slice of ONE Availability
- MANY SlotsReservation: ONE SlotsReservation per (User + Slot)
    - Bob reserved from 8am to 9am (=> ONE SlotsReservation)
    - John reserved from 8am to 9am (=> ONE SlotsReservation)

ONE SlotsReservation have:
- ONE Slot
- ONE Reservation

ONE Reservation may have:
- MANY SlotsReservation (one per reserved slot, for the associated Space)
- ONE User
- ONE Space
- NO Ticket

## Trainings

ONE Availability may have:
- ONE TrainingsAvailability (=> ONE Training)
- ONE Slot: the Availability isn't cut into smaller slots

ONE Slot may have:
- ONE Availability: a Slot as long as the Availability
- MANY SlotsReservation: ONE SlotsReservation per User
  - Bob reserved (=> ONE SlotsReservation)
  - John reserved (=> ONE SlotsReservation)

ONE SlotsReservation have:
- ONE Slot
- ONE Reservation

ONE Reservation have:
- ONE SlotsReservation
- ONE User
- ONE Training
- NO Tickets

## Events

ONE Availability may have:
- ONE Event (from Event.availability_id)
- ONE Slot: the Availability isn't cut into smaller slots

ONE Slot may have:
- ONE Availability: a Slot as long as the Availability
- MANY SlotsReservation: ONE SlotsReservation per User
  - Bob reserved (=> ONE SlotsReservation)
  - John reserved (=> ONE SlotsReservation)

ONE SlotsReservation have:
- ONE Slot
- ONE Reservation

ONE Reservation may have:
- ONE SlotsReservation
- ONE User
- ONE Training
- MANY Tickets (once per extra booked special price)