feat: Implement price list import feature with preview and apply options feat: Create price rules management page with CRUD operations feat: Develop quotes management page with itemized quotes and status tracking feat: Introduce organization registration page for new users feat: Build suppliers management page with detailed supplier information feat: Create users management page for inviting and managing roles chore: Add TypeScript configuration for improved type checking chore: Set up Vite configuration for development server and API proxy chore: Add Vite environment type definitions for better TypeScript support
24 lines
813 B
SQL
24 lines
813 B
SQL
alter table user_invitations
|
|
add column if not exists token_hash text,
|
|
add column if not exists accepted_by_user_id uuid references users(id);
|
|
|
|
create unique index if not exists idx_user_invitations_token_hash
|
|
on user_invitations (token_hash)
|
|
where token_hash is not null;
|
|
|
|
create table if not exists password_reset_tokens (
|
|
id uuid primary key,
|
|
user_id uuid not null references users(id) on delete cascade,
|
|
token_hash text not null unique,
|
|
expires_at timestamptz not null,
|
|
used_at timestamptz,
|
|
created_at timestamptz not null default now()
|
|
);
|
|
|
|
create index if not exists idx_password_reset_tokens_user
|
|
on password_reset_tokens (user_id, expires_at);
|
|
|
|
alter table email_outbox
|
|
add column if not exists subject text,
|
|
add column if not exists delivered_via text;
|