Initial commit

This commit is contained in:
2026-11-05 08:28:15 +00:00
commit 08582a4f70
65 changed files with 1886 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
-- drop database if exists settlementsint
-- create database settlements;
create table users (
id integer primary key autoincrement,
name varchar,
surnames varchar,
email varchar
);
create table user_accounts (
id integer primary key autoincrement,
user_id bigint references users (id) unique,
username varchar unique not null,
password varchar default null,
attempts smallint default 0,
locked bool default false,
active bool default true
);
create table permissions (
id integer primary key autoincrement,
code varchar unique not null,
description varchar default null
);
create table groups (
id integer primary key autoincrement,
code varchar unique not null,
description varchar default null
);
create table user_account_groups (
account_id bigint references user_accounts (id),
group_id bigint references groups (id)
);
create table user_account_permissions (
account_id bigint references user_accounts (id),
permission_id bigint references permissions (id)
);
create table group_permissions (
group_id bigint references groups (id),
permission_id bigint references permissions (id)
);
create table user_account_sessions (
id integer primary key autoincrement,
account_id bigint not null references user_accounts (id),
token varchar not null unique,
created_at timestamp default current_timestamp,
active bool default true
);
create table user_account_recover_requests (
id integer primary key autoincrement,
account_id bigint not null references user_accounts (id),
token varchar not null unique,
created_at timestamp default current_timestamp,
active bool default true
);
create table settlements (
id integer primary key autoincrement,
name varchar not null unique,
address varchar not null unique,
created_at timestamp not null default current_timestamp,
last_done timestamp default null,
last_done_by bigint references users (id),
active bool default true
);
create table animal_coats (
id integer primary key autoincrement,
code varchar unique not null,
description varchar default null
);
create table animals (
id integer primary key autoincrement,
name varchar not null,
microchip varchar default null,
coat bigint not null references animal_coats (id),
sex int not null check(sex in ('female', 'male', 'unknown')) default 'unknown',
settlement_id bigint references settlements (id),
has_ear_mark bool default false,
controlled bool default false,
castrated bool default false,
adopted bool default false,
friendly bool default null,
friendly_children bool default null,
friendly_dogs bool default null,
first_view timestamp default null,
last_view timestamp default null,
created_at timestamp not null default current_timestamp,
active bool default true
);
create table animal_comments (
id integer primary key autoincrement,
animal_id bigint not null references animals (id),
_type int not null check(_type in ('info', 'alert')) default 'info',
message varchar not null,
created_at timestamp default current_timestamp,
public bool default false,
active bool default true
);
create table animal_alerts (
id integer primary key autoincrement,
animal_id bigint not null references animals (id),
_type int not null check(_type in ('info', 'low', 'medium', 'high', 'ultra')) default 'high',
comment varchar not null,
created_at timestamp default current_timestamp,
active bool default true
);
create table animal_images (
id integer primary key autoincrement,
animal_id bigint not null references animals (id),
image varchar not null unique,
created_at timestamp default current_timestamp,
is_primary bool default false,
public bool default false,
active bool default true
);