from sqlalchemy import Column, Integer, String, ForeignKey, TIMESTAMP, Enum
from sqlalchemy.orm import relationship
import enum

from ..database import Base

class SituacaoMovimentacaoEstoque(enum.Enum):
    Solicitado = "Solicitado"
    Executado = "Executado"
    Cancelado = "Cancelado"

class MovimentacaoEstoque(Base):
    __tablename__ = "movimentacao_estoque"

    id = Column(Integer, primary_key=True, name="mov_est_id")
    orcamento_id = Column(Integer, ForeignKey("orcamento.orc_id"), name="orc_id")
    produto_id = Column(Integer, ForeignKey("produto.prod_id"), name="prod_id")
    quantidade = Column(Integer, nullable=False, name="mov_est_quantidade")
    data_solicitacao = Column(TIMESTAMP, nullable=False, name="mov_est_data_solicitacao")
    data_execucao = Column(TIMESTAMP, nullable=True, name="mov_est_data_execucao")
    data_cancelamento = Column(TIMESTAMP, nullable=True, name="mov_est_data_cancelamento")
    situacao = Column(Enum(SituacaoMovimentacaoEstoque), name="mov_est_situacao")

    produto = relationship("Produto", back_populates="movimentacoes")
    orcamento = relationship("Orcamento", back_populates="movimentacoes")
