Domänmodell¶
Salieri hanterar bokningar av rum och nödvändig tillhörande information. Några av de centrala begreppen coh sakerna är exempelvis rum, bokning, användare, kontakt och facilitet. Följande bild listar begrepp och dess relationer.
erDiagram
BOOKING {
int Id PK
string Title
string Contact
DocumentLink[] DocumentLinks
}
DOCUMENTLINK {
string Name
string Url
}
BOOKINGSTATUS {
int Id PK
string Name
}
TIMEINFO {
int Id PK
DateOnly StartDate
DateOnly EndDate
TimeOnly StartTime
TimeOnly EndTime
bool AllDay
}
ROOM {
int Id PK
string Identifier
string Name
}
FACILITY {
int Id PK
string Name
}
ROOMTYPE {
int Id PK
string Name
}
CAPACITY {
int Id PK
int MaxPersons
double Area
}
FLOOR {
int Id PK
string Name
int FloorNumber
}
BUILDING {
int Id PK
string Name
string Address
string Contact
}
LOCATION {
int Id PK
string Name
string City
string Region
}
USERROLE {
int Id PK
string Name
SystemRoleType SystemRole
}
RECURRINGINFO {
int Id PK
int Interval
Period Period
}
RECURRINGWEEKDAY {
int Id PK
Weekday Weekday
}
PERIOD {
int Year
int Month
int Week
int Day
}
WEEKDAY {
int Monday
int Tuesday
int Wednesday
int Thursday
int Friday
int Saturday
int Sunday
}
SYSTEMROLETYPE {
int User
int AuthorizedUser
int Admin
int ServiceUser
}
%% Relations
BOOKING ||--o{ BOOKINGSTATUS : "status_of"
BOOKING ||--|| TIMEINFO : "has"
TIMEINFO ||--o{ RECURRINGINFO : "may_have"
RECURRINGINFO ||--o{ RECURRINGWEEKDAY : "weekdays"
%% Many-to-many relationships (inferred)
ROOM }|--|{ BOOKING : "bookings"
ROOM }|--|{ ROOMTYPE : "types"
ROOM }|--|{ FACILITY : "facilities"
ROOM }|--|{ USERROLE : "bookable_by"
%% One-to-many / one-to-one
CAPACITY ||--o{ ROOM : "capacity_of"
FLOOR ||--o{ ROOM : "rooms_on"
BUILDING ||--o{ FLOOR : "has_floors"
LOCATION ||--o{ BUILDING : "location_of"
%% Booking <> Facility (desired facilities)
BOOKING }|--|{ FACILITY : "desired_facilities"
classDiagram
namespace Salieri ["Salieri domänmodell"] {
class App {
Version
}
}
namespace Salieri.Base ["Grunddata"] {
class Building ["Byggnad"] {
Namn
Adress
Kontakt
}
class Floor ["Våningsplan"] {
Namn
Våning
}
class Room ["Rum"] {
Identitet
Namn
}
class Capacity ["Kapacitet"] {
Max antal personer
Yta
}
class Location ["Plats"] {
Ort
Område
Namn
}
class RoomType ["Rumstyp"] <<enumeration>> {
Orkestersal
Konsertsal
Ensemblerum
Övningsrum
...(konfigurerbart)
}
class Facility ["Facilitet"] <<enumeration>> {
Flygel/Piano
Projektor
Talarstol
Hörslinga
Ljudsystem
Ljuddämpat
Whiteboard
... (konfigurerbart)
}
class BookingStatus ["Bokningsstatus"] <<enumeration>> {
Preliminär
Väntande
Klar
... (konfigurerbart)
}
}
namespace Salieri.Bookings ["Bokningar"] {
class Booking ["Rumsbokning"] {
Titel
Kontakt
Dokument
}
class TimeInfo ["TidsInformation"] {
Startdatum
Slutdatum
Starttid
Sluttid
Hela dagen
}
class RecurringInfo ["Återkommande"] {
Intervall
}
class Period ["Period"] <<enumeration>> {
År
Månad
Vecka
Dag
}
class Weekday ["Veckodag"] <<enumeration>> {
Måndag
Tisdag
Onsdag
Torsdag
Fredag
Lördag
Söndag
}
}
namespace Salieri.Roles ["Roller"] {
class UserRole ["Användarroll"] {
Namn
Systemroll
}
class SystemRole ["Systemroll"] {
Användare
Auktoriserad användare
Administratör
Tjänsteanvändare
}
}
App *--> "1..n" Room
App *--> "1..n" Building
App *--> "1..n" Location
App *--> "1..n" Facility
App *-- "0..n" Booking
App *-- "4" SystemRole
App *-- "1..n" UserRole
Building --> "n" Floor
Building ..> "1" Location
Floor *--> "0..n" Room
UserRole ..> "1" SystemRole
Room *--> "1" Capacity
Room *--> "1..n" RoomType
Room ..> "1..n" UserRole : kan bokas av
Room ..> "0..n" Facility
Booking ..> "1..n" Room
Booking *--> "1" BookingStatus
Booking ..> "0..n" Facility : önskar
Booking *--> "1" TimeInfo
TimeInfo *--> "0..1" RecurringInfo
RecurringInfo *--> "1" Period
RecurringInfo *--> "1..n" Weekday
Bokningar¶
Under kategorin bokningar samlas information som berör själva bokningen. Dels det sammanhållande rumsbokningen och dels associerad information som exempelvis tid.
- Bokning
Byggander och rum¶
Denna kategori av domänmodellen utgör grunddata för Salieri. Här defineras rum, byggnader med våningsplan, platser och diverse listor som faciliteter, bokningsstatus osv.
-
Byggnad
-
Plats
-
Våningsplan
-
Rum
-
Kapacitet
-
Listor
- Rumstyp
- Facilitet
- Bokningsstatus
Roller¶
Här återfinns begreppen användar- och systemroll. Mer information om roller finns finns att läsa här.