vrsao api_farmacia funcional
This commit is contained in:
parent
b22ca586e5
commit
0f9e159b87
4
app.py
4
app.py
@ -24,6 +24,8 @@ from routes.service_instance import service_instance_bp
|
||||
from routes.reports import employee_bp
|
||||
from routes.shift import shift_bp
|
||||
from routes.time_schedules import time_schedule_bp
|
||||
from routes.holiday import holiday_bp
|
||||
from routes.company import company_bp
|
||||
from routes.record import record_bp
|
||||
import logging
|
||||
from dotenv import load_dotenv
|
||||
@ -128,6 +130,8 @@ def create_app():
|
||||
app.register_blueprint(shift_bp)
|
||||
app.register_blueprint(time_schedule_bp)
|
||||
app.register_blueprint(record_bp)
|
||||
app.register_blueprint(holiday_bp)
|
||||
app.register_blueprint(company_bp)
|
||||
|
||||
# Testa a conexão com o banco de dados
|
||||
with app.app_context():
|
||||
|
||||
@ -28,6 +28,7 @@ class Company(db.Model):
|
||||
|
||||
#relacionamento
|
||||
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False)
|
||||
parent_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=True)
|
||||
|
||||
#historico
|
||||
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
||||
|
||||
@ -11,6 +11,10 @@ class User(db.Model):
|
||||
password = db.Column(db.String(256), nullable=False)
|
||||
profile_image = db.Column(db.String(255), nullable=True)
|
||||
birth_date = db.Column(db.Date, nullable=True)
|
||||
|
||||
status = db.Column(db.String(120), nullable=False, default="ativo")
|
||||
|
||||
|
||||
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
|
||||
updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ from models.company import Company
|
||||
from models.user import db
|
||||
from models.service_instance import ServiceInstance
|
||||
|
||||
|
||||
company_bp = Blueprint('company', __name__, url_prefix='/company')
|
||||
|
||||
@company_bp.route('/', methods=['POST'])
|
||||
@ -31,12 +32,11 @@ def create_company():
|
||||
complemento = data.get('complemento')
|
||||
cep = data.get('cep')
|
||||
|
||||
|
||||
|
||||
#relacao
|
||||
service_instance_id = data.get('service_instance_id')
|
||||
parent_id = data.get('parent_id')
|
||||
|
||||
# Cria um novo ServiceRole
|
||||
# Criando
|
||||
company = Company(
|
||||
name=name,
|
||||
fantasy_name = fantasy_name,
|
||||
@ -56,7 +56,8 @@ def create_company():
|
||||
estado=estado,
|
||||
cidade=cidade,
|
||||
|
||||
service_instance_id=service_instance_id
|
||||
service_instance_id=service_instance_id,
|
||||
parent_id=parent_id
|
||||
|
||||
)
|
||||
|
||||
@ -64,7 +65,7 @@ def create_company():
|
||||
db.session.add(company)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify({'message': 'empresa criada com sucesso', 'feriado_id': company.id}), 201
|
||||
return jsonify({'message': 'empresa criada com sucesso', 'company_id': company.id}), 201
|
||||
|
||||
@company_bp.route('/<int:company_id>', methods=['PUT'])
|
||||
@swag_from('../docs/company/update.yml')
|
||||
@ -121,12 +122,13 @@ def update_company(company_id):
|
||||
@company_bp.route('/', methods=['GET'])
|
||||
@swag_from('../docs/company/list.yml')
|
||||
def list_company():
|
||||
"""Lista todos os turnos, opcionalmente filtrando por instância de serviço."""
|
||||
service_instance_id = request.args.get('service_instance_id')
|
||||
"""Lista todos as empresas, opcionalmente filtrando por parent_id."""
|
||||
#service_instance_id = request.args.get('service_instance_id')
|
||||
parent_id = request.args.get('parent_id')
|
||||
|
||||
if service_instance_id:
|
||||
if parent_id:
|
||||
# Filtrar por service_instance_id
|
||||
company = Company.query.filter_by(service_instance_id=service_instance_id).all()
|
||||
company = Company.query.filter_by(parent_id=parent_id).all()
|
||||
else:
|
||||
# Retornar todos os turnos
|
||||
companys = Company.query.all()
|
||||
@ -150,7 +152,8 @@ def list_company():
|
||||
"complemento": company.complemento,
|
||||
"estado": company.estado,
|
||||
"cidade": company.cidade,
|
||||
'service_instance_id': company.service_instance_id
|
||||
'service_instance_id': company.service_instance_id,
|
||||
"parent_id":company.parent_id
|
||||
} for company in companys]
|
||||
|
||||
return jsonify(company_list), 200
|
||||
@ -182,7 +185,8 @@ def get_company_id(company_id):
|
||||
"complemento": company.complemento,
|
||||
"estado": company.estado,
|
||||
"cidade": company.cidade,
|
||||
'service_instance_id': company.service_instance_id
|
||||
'service_instance_id': company.service_instance_id,
|
||||
"parent_id":company.parent_id
|
||||
}),200
|
||||
|
||||
#deletar
|
||||
|
||||
@ -81,13 +81,14 @@ def list_holiday():
|
||||
else:
|
||||
# Retornar todos os turnos
|
||||
holidays = Holiday.query.all()
|
||||
print(holidays)
|
||||
|
||||
return jsonify({
|
||||
'holiday_list' : [{
|
||||
'id': holiday.id,
|
||||
'name': holiday.name,
|
||||
'estado': holiday.estado,
|
||||
"date": holiday.date.strftime("%H:%M"),
|
||||
"date": holiday.date.strftime("%Y-%m-%d"),
|
||||
"municipio": holiday.municipio,
|
||||
'parent_id' : holiday.parent_id,
|
||||
'service_instance_id': holiday.service_instance_id
|
||||
@ -96,7 +97,7 @@ def list_holiday():
|
||||
#Get
|
||||
@holiday_bp.route('/<int:holiday_id>', methods=['GET'])
|
||||
@swag_from('../docs/holiday/get.yml')
|
||||
def get_shift_id(holiday_id):
|
||||
def get_holiday_id(holiday_id):
|
||||
holiday = Holiday.query.get(holiday_id)
|
||||
if not holiday:
|
||||
return jsonify({'error': 'Escala não encontrada'}), 404
|
||||
@ -106,7 +107,8 @@ def get_shift_id(holiday_id):
|
||||
'name': holiday.name,
|
||||
'estado': holiday.estado,
|
||||
'municipio': holiday.municipio,
|
||||
"date": holiday.date.strftime("%H:%M"),
|
||||
'type':holiday.type,
|
||||
"date": holiday.date.strftime("%Y-%m-%d"),
|
||||
'parent_id' : holiday.parent_id,
|
||||
'service_instance_id': holiday.service_instance_id}),200
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ def create_user():
|
||||
birth_date = data.get('birth_date')
|
||||
parent_id = data.get('parent_id')
|
||||
service_instance_id = data.get('service_instance_id')
|
||||
status = data.get('status')
|
||||
|
||||
|
||||
# Verifica se o usuário já existe
|
||||
@ -41,7 +42,8 @@ def create_user():
|
||||
profile_image=profile_image,
|
||||
birth_date=birth_date,
|
||||
parent_id=parent_id,
|
||||
service_instance_id=service_instance_id
|
||||
service_instance_id=service_instance_id,
|
||||
status=status
|
||||
)
|
||||
user.set_password(password)
|
||||
|
||||
@ -70,6 +72,7 @@ def create_subordinate(logged_user_id):
|
||||
profile_image = data.get('profile_image')
|
||||
birth_date = data.get('birth_date')
|
||||
service_instance_id = data.get('service_instance_id')
|
||||
status = data.get('status')
|
||||
|
||||
existing_user = User.query.filter_by(username=username).first()
|
||||
if existing_user:
|
||||
@ -82,7 +85,8 @@ def create_subordinate(logged_user_id):
|
||||
profile_image=profile_image,
|
||||
birth_date=birth_date,
|
||||
parent_id=parent_id,
|
||||
service_instance_id=service_instance_id
|
||||
service_instance_id=service_instance_id,
|
||||
status=status
|
||||
)
|
||||
subordinate.set_password(password)
|
||||
|
||||
@ -111,7 +115,8 @@ def list_hierarchy(user_id):
|
||||
'email': child.email,
|
||||
'birth_date':child.birth_date,
|
||||
'phone':child.phone,
|
||||
'service_instance_id':child.service_instance_id
|
||||
'service_instance_id':child.service_instance_id,
|
||||
'status':child.status
|
||||
})
|
||||
# Verifica recursivamente os filhos (subordinados dos subordinados)
|
||||
flat_list.extend(flatten_hierarchy(child))
|
||||
@ -142,7 +147,8 @@ def list_hierarchy_by_id():
|
||||
'birth_date':user.birth_date,
|
||||
'phone':user.phone,
|
||||
'subordinates': [build_hierarchy(sub) for sub in user.children],
|
||||
'service_instance_id':user.service_instance_id
|
||||
'service_instance_id':user.service_instance_id,
|
||||
'status':user.status
|
||||
|
||||
}
|
||||
|
||||
@ -185,6 +191,9 @@ def update_user(user_id):
|
||||
|
||||
if 'password' in data:
|
||||
user.set_password(data['password'])
|
||||
|
||||
if 'status' in data:
|
||||
user.status = data['status']
|
||||
|
||||
db.session.commit()
|
||||
return jsonify({'message': 'Usuário atualizado com sucesso'}), 200
|
||||
@ -260,6 +269,7 @@ def get_user(user_id):
|
||||
'birth_date':user.birth_date,
|
||||
'phone':user.phone,
|
||||
'service_role_id':user.service_role_id,
|
||||
'status':user.status,
|
||||
'licenses': [
|
||||
{
|
||||
'license_key': license.license_key,
|
||||
@ -301,8 +311,11 @@ def get_user(user_id):
|
||||
def delete_user(user_id):
|
||||
user = User.query.get_or_404(user_id)
|
||||
|
||||
# Antes de excluir, você pode adicionar validações adicionais se necessário
|
||||
# Verifica se já está inativo
|
||||
if user.status.lower() == "inativo":
|
||||
return jsonify({'message': 'Usuário já está inativo'}), 400
|
||||
|
||||
db.session.delete(user)
|
||||
# Atualiza o status para inativo
|
||||
user.status = "inativo"
|
||||
db.session.commit()
|
||||
return jsonify({'message': 'Usuário excluído com sucesso'}), 200
|
||||
@ -20,7 +20,8 @@ def seed_company():
|
||||
"complemento": "Bloco A",
|
||||
"estado": "SP",
|
||||
"cidade": "São Paulo",
|
||||
'service_instance_id': 1
|
||||
'service_instance_id': 1,
|
||||
"parent_id":1
|
||||
},
|
||||
|
||||
# Empresa 2
|
||||
@ -40,7 +41,8 @@ def seed_company():
|
||||
"complemento": "Sala 305",
|
||||
"estado": "RJ",
|
||||
"cidade": "Rio de Janeiro",
|
||||
'service_instance_id': 1
|
||||
'service_instance_id': 1,
|
||||
"parent_id":2
|
||||
},
|
||||
]
|
||||
|
||||
@ -66,7 +68,8 @@ def seed_company():
|
||||
complemento=company_data['complemento'],
|
||||
estado=company_data['estado'],
|
||||
cidade=company_data['cidade'],
|
||||
service_instance_id=company_data['service_instance_id']
|
||||
service_instance_id=company_data['service_instance_id'],
|
||||
parent_id=company_data['parent_id']
|
||||
)
|
||||
db.session.add(company)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user