create table musics (
  id serial,
  name varchar(255),
  slug varchar(255),
  letter text,
  cipher text,
  extra_infos text,
  author varchar(255),   
  youtube_url text,
  active boolean default false,
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint musics_pkey primary key (id)
);

create table liturgical_times (
  id serial,
  name varchar(255),
  slug varchar(255),
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint liturgical_time_pkey primary key (id)
);

create table liturgical_time_years (
  id serial,
  name varchar(255),
  liturgical_time_id integer,
  year_reference varchar(4), 
  start_date timestamp,
  end_date timestamp,
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint liturgical_time_year_pkey primary key (id)
);

create table fixed_parts (
  id serial,
  name varchar(255),
  slug varchar(255),
  created timestamp default now(),
  ordered integer,
  default_selected boolean default false,
  in_trash boolean default false,
  constraint fixed_parts_pkey primary key (id)
);

create table liturgical_weeks (
  id serial,
  name varchar(255),
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint liturgical_week_pkey primary key (id)
);

create table liturgical_time_musics (
  id serial,
  music_id integer,  
  liturgical_time_id integer,
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint liturgical_time_music_pkey primary key (id)
);

create table fixed_part_musics (
  id serial,
  music_id integer,  
  fixed_part_id integer,
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint fixed_part_music_pkey primary key (id)
);

create table music_votes (
  id serial,
  music_id integer,  
  vote integer,
  created timestamp default now(),
  default_selected boolean default false,
  in_trash boolean default false,
  constraint music_vote_pkey primary key (id)
);

create table repertoires (
  id serial,
  name varchar(255),
  slug varchar(255),
  music_id integer,  
  fixed_part_id integer,
  liturgical_week_id integer,
  to_date timestamp,
  created timestamp default now(),
  image_banner varchar(255),
  featured boolean default false,
  show_in_banner boolean default false,
  default_selected boolean default false,
  in_trash boolean default false,
  constraint repertoire_pkey primary key (id)
);

insert into fixed_parts(name, ordered) values 
('Entrada', 10),
('Sinal da Cruz', 20),
('Ato Penitencial', 30),
('Entrada da Bíblia', 40),
('Sequência', 50),
('Salmo', 60),
('Ofertório', 70),
('Santo', 80),
('Eis o Mistério da Fé', 90),
('Por Cristo', 100),
('Pai nosso', 110),
('Paz de Cristo', 120),
('Cordeiro', 130),
('Comunhão', 140),
('Pós-Comunhão', 150),
('Final', 160);

insert into liturgical_times (name) values
('Advento'),
('Tempo do Natal'),
('Tempo Comum'),
('Quaresma'),
('Tempo Pascal');

insert into liturgical_weeks (name) values
('1º Domingo Do Advento'),
('2º Domingo Do Advento'),
('3º Domingo Do Advento'),
('4º Domingo Do Advento'),
('Natal Do Senhor'),
('Sagrada Família De Jesus, Maria E José'),
('Solenidade Da Santa Mãe De Deus, Maria'),
('2º Domingo Depois Do Natal'),
('Epifania Do Senhor'),
('Batismo Do Senhor'),
('Quarta-feira De Cinzas'),
('1º Domingo Da Quaresma'),
('2º Domingo Da Quaresma'),
('3º Domingo Da Quaresma'),
('4º Domingo Da Quaresma'),
('5º Domingo Da Quaresma'),
('Domingo De Ramos'),
('Segunda-feira Da Semana Santa'),
('Terça-feira Da Semana Santa'),
('Quarta-feira Da Semana Santa'),
('Quinta-feira Da Semana Santa'),
('Sexta-feira Da Paixão Do Senhor'),
('Domingo Da Páscoa'),
('2º Domingo Da Páscoa'),
('3º Domingo Da Páscoa'),
('4º Domingo Da Páscoa'),
('5º Domingo Da Páscoa'),
('6º Domingo Da Páscoa'),
('7º Domingo Da Páscoa'),
('Ascensão Do Senhor'),
('Pentecostes'),
('Solenidade Da Santíssima Trindade'),
('Corpus Christi'),
('Solenidade Do Sagrado Coração De Jesus'),
('2º Domingo Do Tempo Comum'),
('3º Domingo Do Tempo Comum'),
('4º Domingo Do Tempo Comum'),
('5º Domingo Do Tempo Comum'),
('6º Domingo Do Tempo Comum'),
('7º Domingo Do Tempo Comum'),
('8º Domingo Do Tempo Comum'),
('9º Domingo Do Tempo Comum'),
('10º Domingo Do Tempo Comum'),
('11º Domingo Do Tempo Comum'),
('12º Domingo Do Tempo Comum'),
('13º Domingo Do Tempo Comum'),
('14º Domingo Do Tempo Comum'),
('15º Domingo Do Tempo Comum'),
('16º Domingo Do Tempo Comum'),
('17º Domingo Do Tempo Comum'),
('18º Domingo Do Tempo Comum'),
('19º Domingo Do Tempo Comum'),
('20º Domingo Do Tempo Comum'),
('21º Domingo Do Tempo Comum'),
('22º Domingo Do Tempo Comum'),
('23º Domingo Do Tempo Comum'),
('24º Domingo Do Tempo Comum'),
('25º Domingo Do Tempo Comum'),
('26º Domingo Do Tempo Comum'),
('27º Domingo Do Tempo Comum'),
('28º Domingo Do Tempo Comum'),
('29º Domingo Do Tempo Comum'),
('30º Domingo Do Tempo Comum'),
('31º Domingo Do Tempo Comum'),
('32º Domingo Do Tempo Comum'),
('33º Domingo Do Tempo Comum'),
('34º Domingo Do Tempo Comum'),
('Nossa Senhora da Conceição Aparecida'),
('Apresentação do Senhor'),
('Natividade de São João Batista'),
('São Pedro e São Paulo'),
('Transfiguração do Senhor'),
('Finados'),
('Solenidade de Todos os Santos'),
('Dedicação da Basílica do Latrão');


CREATE TABLE find_box_visibilities
(
  id serial,
  page_reference character varying(100),
  visible boolean DEFAULT false,
  user_id integer,
  in_trash boolean DEFAULT false,
  default_selected boolean DEFAULT false,
  CONSTRAINT find_box_visibility_pkey PRIMARY KEY (id)
);

--
-- 0.2
--

create table churches (
  id serial,
  name varchar(255),
  address text,
  site varchar(255),
  in_trash boolean DEFAULT false,
  default_selected boolean DEFAULT false,
  CONSTRAINT church_pkey PRIMARY KEY (id)
);

create table schedules (
  id serial,
  name varchar(255),
  church_id integer,
  to_date timestamp,  
  visible boolean DEFAULT true,
  user_id integer,
  in_trash boolean DEFAULT false,
  default_selected boolean DEFAULT false,
  CONSTRAINT schedule_pkey PRIMARY KEY (id)
);

update versions set current = '0.2';

--
-- 0.3
--