Skip to content

rodrigocordulab/fiap-8soat-g56-hackaton-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIAP X - DB Service

📌 Introdução

Este repositório contém a definição do banco de dados relacional utilizado pelos microserviços do projeto FIAP X. Ele centraliza o schema SQL das tabelas utilizadas por todos os serviços da aplicação, como usuários, vídeos e suas respectivas relações.

O banco é implementado em PostgreSQL, sendo acessado por microserviços como auth-service, upload-service, processor-service e download-service.

🧩 Entidades e Relacionamentos

O banco de dados contém duas entidades principais:

🧑 Tabela users

Armazena as credenciais e dados básicos dos usuários autenticados no sistema.

Campo Tipo Descrição
id SERIAL Identificador primário
email VARCHAR(255) E-mail do usuário (único)
password_hash VARCHAR(255) Senha criptografada
created_at TIMESTAMP Data de criação

🎞️ Tabela videos

Registra os uploads de vídeos feitos pelos usuários, bem como seus status de processamento e o caminho do ZIP de frames gerado.

Campo Tipo Descrição
id SERIAL Identificador primário
user_id INT Chave estrangeira para users.id
original_filename VARCHAR(255) Nome do arquivo original
stored_path VARCHAR(255) Caminho no disco onde o vídeo foi salvo
zip_path VARCHAR(255) Caminho do arquivo .zip com os frames
status ENUM uploaded, processing, done, error
created_at TIMESTAMP Data de envio
updated_at TIMESTAMP Última atualização

🗄️ Script SQL

CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TYPE video_status AS ENUM ('uploaded', 'processing', 'done', 'error');

CREATE TABLE IF NOT EXISTS videos (
    id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(id),
    original_filename VARCHAR(255),
    stored_path VARCHAR(255),
    zip_path VARCHAR(255),
    status video_status DEFAULT 'uploaded',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Esse script é utilizado para inicialização automática do banco dentro dos serviços, com SQLAlchemy.


🛠️ Como Executar

Você pode subir o banco localmente com o seguinte docker-compose.yml Execute com:

docker compose up db

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published