apskel-pos-backend/migrations/000016_create_files_table.up.sql

30 lines
1.1 KiB
MySQL
Raw Permalink Normal View History

2025-07-18 20:10:29 +07:00
CREATE TABLE files (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
organization_id UUID NOT NULL,
user_id UUID NOT NULL,
file_name VARCHAR(255) NOT NULL,
original_name VARCHAR(255) NOT NULL,
file_url VARCHAR(500) NOT NULL,
file_size BIGINT NOT NULL,
mime_type VARCHAR(100) NOT NULL,
file_type VARCHAR(50) NOT NULL,
upload_path VARCHAR(500) NOT NULL,
is_public BOOLEAN DEFAULT TRUE,
metadata JSONB,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Create indexes for better performance
CREATE INDEX idx_files_organization_id ON files(organization_id);
CREATE INDEX idx_files_user_id ON files(user_id);
CREATE INDEX idx_files_file_type ON files(file_type);
CREATE INDEX idx_files_created_at ON files(created_at);
-- Add foreign key constraints
ALTER TABLE files ADD CONSTRAINT fk_files_organization_id
FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE CASCADE;
ALTER TABLE files ADD CONSTRAINT fk_files_user_id
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;