Spaces:
Sleeping
Sleeping
| from flask import Flask, render_template | |
| from flask_sqlalchemy import SQLAlchemy | |
| import os | |
| # Inicializar aplicação Flask | |
| app = Flask(__name__) | |
| # Configuração do banco de dados | |
| app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///hypercycle_monitor.db' | |
| app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False | |
| app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'development_key') | |
| # Inicializar banco de dados | |
| db = SQLAlchemy(app) | |
| # Modelos | |
| class User(db.Model): | |
| __tablename__ = 'users' | |
| id = db.Column(db.Integer, primary_key=True) | |
| name = db.Column(db.String(100), nullable=False) | |
| email = db.Column(db.String(100), unique=True, nullable=False) | |
| password_hash = db.Column(db.String(128), nullable=False) | |
| telegram_id = db.Column(db.String(50), unique=True, nullable=True) | |
| is_active = db.Column(db.Boolean, default=True) | |
| is_admin = db.Column(db.Boolean, default=False) | |
| class Factory(db.Model): | |
| __tablename__ = 'factories' | |
| id = db.Column(db.Integer, primary_key=True) | |
| name = db.Column(db.String(100), nullable=False) | |
| hypercycle_id = db.Column(db.String(100), unique=True, nullable=False) | |
| description = db.Column(db.Text, nullable=True) | |
| current_status = db.Column(db.String(20), default='unknown') | |
| # Rota principal | |
| def index(): | |
| return render_template('index.html', title='Hypercycle Monitor') | |
| # Criar tabelas do banco de dados | |
| with app.app_context(): | |
| db.create_all() | |
| # Inicializar aplicação | |
| if __name__ == '__main__': | |
| # Porta 7860 é a padrão do Hugging Face Spaces | |
| app.run(host='0.0.0.0', port=7860) | |