
create table groups (
    id INTEGER primary key autoincrement,
    name TEXT,
    system INTEGER default 0 not null 
);

create table user_group (
    id_user INTEGER,
    id_group INTEGER,
    FOREIGN KEY(id_user) REFERENCES users(id),
    FOREIGN KEY(id_group) REFERENCES groups(id),
    PRIMARY KEY(id_user, id_group)
);

create table votes (
    id INTEGER primary key autoincrement,
    title TEXT not null,
    description TEXT,
    category TEXT,
    date_begin INTEGER default CURRENT_TIMESTAMP not null,
    date_end INTEGER not null,
    is_transparent INTEGER default 1 not null, 
    is_public INTEGER default 1 not null,
    is_multiplechoice INTEGER default 1 not null,
    is_weighted INTEGER default 0 not null,
    is_open INTEGER default 0 not null,
    id_author INTEGER, -- :COMMENT:maethor:120528: not null ?
    id_group INTEGER default 1 not null,
    FOREIGN KEY(id_author) REFERENCES users(id)
    FOREIGN KEY(id_group) REFERENCES groups(id)
);

create table attachments (
    id INTEGER primary key autoincrement,
    url TEXT not null,
    id_vote INTEGER not null,
    FOREIGN KEY(id_vote) REFERENCES vote(id)
);

create table choices (
    id INTEGER primary key autoincrement,
    name TEXT not null,
    id_vote INTEGER not null,
    FOREIGN KEY(id_vote) REFERENCES vote(id)
);

create table user_choice (
    id_user INTEGER,
    id_choice INTEGER,
    weight INTEGER,
    FOREIGN KEY(id_user) REFERENCES users(id),
    FOREIGN KEY(id_choice) REFERENCES choices(id),
    PRIMARY KEY(id_user, id_choice)
);
insert into groups (id, name, system) values (1, "Tous", 1);
insert into groups (name) values ("CA");
insert into groups (name) values ("Members");

