Datamodel ERD - HeroPhil/DHBW-KinoCinema GitHub Wiki

ERD-Diagramm der Firestore Datenbank

JSON

{
    "live": {
        "events": {
            "movies": {
                "${movie_id}": {
                    "description": String,
                    "categories": String[],
                    "duration": number,
                    "name": String,
                    "priority": number,
                    "cover": String
                }
            },
            "screenings": {
                "${screening_id}": {
                    "hall": ${hall_id},
                    "movie": ${movie_id},
                    "price": number,
                    "startTime": number
                }
            },
            "tickets": {
                "${ticket_id}": {
                    "buyTime": number,
                    "row": number,
                    "screening": ${screening_id},
                    "seat": number,
                    "user": ${user_id},
                    "price": number
                }
            },
            "movieCategories": String[]
        },
        "infrastructure": {
            "halls": {
                "${hall_id}": {
                    "name": String,
                    "rows": [
                        {
                             "count": number,
                             "type": ${rowtype_id}
                        },
                        {
                             "count": number,
                             "type": ${rowtype_id}
                        }
                    ],
                    "width": number
                }
            },
            "rowtypes": {
                "${rowtype_id}": {
                    "name": String,
                    "price": number
                }
            }
        },
        "users" : {
            "customers": {
                "${customer_id}": {
                    "city": String,
                    "displayName": String,
                    "email": String,
                    "lastName": String,
                    "phone": String,
                    "primaryAddress": String,
                    "secondaryAddress": String,
                    "firstName": String,
                    "zipCode": number
                }
            },
            "admins": {
                "${customer_id}": {}
            }
        },
        "sync": {
            "screenings": {
                "${screening_id}": {
                    "${row}": {
                        "${seat}": {
                            "executionId": String,
                            "timestamp": number
                        }
                    }
                }
            }
        }
    }
}