Rapsys\AirBundle\Entity\Session:
    type: entity
    repositoryClass: Rapsys\AirBundle\Repository\SessionRepository
    table: sessions
    id:
        id:
            type: integer
            generator: 
                strategy: AUTO
            options:
                unsigned: true
    fields:
        date:
            type: date
        begin:
            type: time
            nullable: true
        length:
            type: time
            nullable: true
        premium:
            type: boolean
        rainfall:
            type: float
            nullable: true
        rainrisk:
            type: float
            nullable: true
        realfeel:
            type: float
            nullable: true
        realfeelmin:
            type: float
            nullable: true
        realfeelmax:
            type: float
            nullable: true
        temperature:
            type: float
            nullable: true
        temperaturemin:
            type: float
            nullable: true
        temperaturemax:
            type: float
            nullable: true
        locked:
            type: datetime
            nullable: true
        created:
            type: datetime
        updated:
            type: datetime
    oneToOne:
        application:
            targetEntity: Rapsys\AirBundle\Entity\Application
    manyToOne:
        location:
            targetEntity: Rapsys\AirBundle\Entity\Location
            inversedBy: sessions
        slot:
            targetEntity: Rapsys\AirBundle\Entity\Slot
            inversedBy: sessions
    oneToMany:
        applications:
            targetEntity: Rapsys\AirBundle\Entity\Application
            mappedBy: session
    uniqueConstraints:
        date_location_slot:
            columns: [ date, location_id, slot_id ]
    indexes:
        #XXX: used in SessionRepository::findAllPendingApplication
        locked_date_begin_created:
            columns: [ locked, date, begin, created ]
        #XXX: used in SessionRepository::findBestApplicationById(s3)
        application_locked_date_begin_slot_created:
            columns: [ application_id, locked, date, begin, slot_id, created ]
        #XXX: candidated in findAllPendingDailyWeather and findAllPendingHourlyWeather
        location_date_begin_length_slot:
            columns: [ location_id, date, begin, length, slot_id ]
#        #XXX: tried for SessionRepository::findBestApplicationById(s2)
#        location_slot_application_locked_date_begin:
#            columns: [ location_id, slot_id, application_id, locked, date ]
#        #XXX: tried for SessionRepository::findBestApplicationById(s3)
#        application_locked_date:
#            columns: [ application_id, locked, date ]
#        #XXX: tried for SessionRepository::findBestApplicationById(s4)
#        location_application_locked_date:
#            columns: [ location_id, application_id, locked, date ]