-- Creates support tables and useful views for the calendar system
--
-- @author Gary Jin (gjin@arsdigita.com)
-- @creation-date Nov 30, 2000
-- @cvs-id $Id: cal-table-create.sql,v 1.7 2018/03/25 22:13:40 hectorr Exp $
--
-- @ported by Charles Mok (mok_cl@eelab.usyd.edu.au)
-------------------------------------------------------
-- Calendar Support Tables
-------------------------------------------------------
-- Table cal_party_prefs stores customization information
-- for each calendar. These data are unique to each party.
-- This means that each party using the same calendar can
-- have a different look to it.
create table cal_party_prefs (
-- refers to a particular calendar Id
calendar_id integer
constraint cal_pty_prefs_cal_id_fk
references calendars
on delete cascade,
-- Party Id
party_id integer
constraint cal_pty_prefs_party_id_fk
references parties
on delete cascade,
-- default_view stores whether the user wants
-- list, month, day, week, or year as his/her default view.
default_view varchar(10)
default 'day'
constraint cal_pty_prefs_default_view_ck
check (default_view in (
'list',
'day',
'week',
'month',
'year'
)
),
-- the default number of minutes for each appointment
default_duration integer
default 60
constraint cal_pty_prefs_default_duration
check (default_duration > 0),
-- the default starting time in daily view in military time 00 - 23
daily_start --number(2)
numeric(2,0)
default 07
constraint cal_pty_prefs_daily_start
check (daily_start < 24 and daily_start > -1),
-- the default ending time in daily view in military time 00 -23
daily_end --number(2)
numeric(2,0)
default 18
constraint cal_pty_prefs_daily_end
check (daily_end < 24 and daily_end > 0),
-- which time zone does the user belong to
time_zone integer
constraint cal_pty_prefs_time_zone_fk
references timezones
on delete cascade
check (time_zone > 0),
-- which day to start the week, monday or sunday
first_day_of_week varchar(9)
default 'Sunday'
constraint cal_pty_prefs_1st_day_ck
check (first_day_of_week in (
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
)
),
-- unique constraint between calendar_id and party_id
-- this ensures that each party has only one set of
-- preferences per calendar
constraint cal_party_prefs_un unique(calendar_id, party_id)
);
comment on table cal_party_prefs is '
Table cal_user_prefs would stores custom information
about each individual user. This would include time zone
which is the first day of the week, monday or sunday,
and the likes.
';
comment on column cal_party_prefs.party_id is '
Maps to a party
';
comment on column cal_party_prefs.default_view is '
default_view stores whether the user wants
list, month, day, week, or year as his/her default view.
';
comment on column cal_party_prefs.default_duration is '
the default number of minutes for each appointment
';
comment on column cal_party_prefs.daily_start is '
the default start time in daily view in military time 00 - 23
default to 07 or 7 am
';
comment on column cal_party_prefs.daily_end is '
the default end time in daily view in military time 00 - 23
default to 18 or 6 pm
';
--comment on column cal_party_prefs.time_zone is '
-- The time zone that the user is in. This is useful in sending out
-- reminders and other applications
--';
comment on column cal_party_prefs.first_day_of_week is '
Which day of the week will be displayed first in month and week view
';