CREATE TABLE Filme (
    id_filme SERIAL PRIMARY KEY,
    titulo VARCHAR(150) NOT NULL,
    genero VARCHAR(50),
    duracao INT,
    classificacao VARCHAR(10)
);

CREATE TABLE Sala (
    id_sala SERIAL PRIMARY KEY,
    numero INT NOT NULL,
    capacidade INT NOT NULL,
    tipo VARCHAR(30)
);

CREATE TABLE Sessao (
    id_sessao SERIAL PRIMARY KEY,
    id_filme INT NOT NULL,
    id_sala INT NOT NULL,
    data_sessao DATE NOT NULL,
    horario TIME NOT NULL,
    preco DECIMAL(10,2) NOT NULL,
    CONSTRAINT fk_sessao_filme FOREIGN KEY (id_filme) REFERENCES Filme(id_filme),
    CONSTRAINT fk_sessao_sala FOREIGN KEY (id_sala) REFERENCES Sala(id_sala)
);

CREATE TABLE Caixa (
    id_caixa SERIAL PRIMARY KEY,
    data_abertura TIMESTAMP NOT NULL,
    data_fechamento TIMESTAMP,
    responsavel VARCHAR(100),
    valor_total DECIMAL(10,2) DEFAULT 0
);

CREATE TABLE Ingresso (
    id_ingresso SERIAL PRIMARY KEY,
    id_sessao INT NOT NULL,
    id_caixa INT NOT NULL,
    assento VARCHAR(10),
    valor_pago DECIMAL(10,2) NOT NULL,
    data_venda TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT fk_ingresso_sessao FOREIGN KEY (id_sessao) REFERENCES Sessao(id_sessao),
    CONSTRAINT fk_ingresso_caixa FOREIGN KEY (id_caixa) REFERENCES Caixa(id_caixa)
);

CREATE TABLE Produto (
    id_produto SERIAL PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    descricao VARCHAR(255),
    preco_unitario DECIMAL(10,2) NOT NULL,
    estoque INT DEFAULT 0
);

CREATE TABLE ItemVenda (
    id_item_venda SERIAL PRIMARY KEY,
    id_caixa INT NOT NULL,
    id_produto INT NOT NULL,
    quantidade INT NOT NULL DEFAULT 1,
    valor_unitario DECIMAL(10,2) NOT NULL,
    valor_total DECIMAL(10,2) NOT NULL,
    CONSTRAINT fk_itemvenda_caixa FOREIGN KEY (id_caixa) REFERENCES Caixa(id_caixa),
    CONSTRAINT fk_itemvenda_produto FOREIGN KEY (id_produto) REFERENCES Produto(id_produto)
);

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: