feat: add admin settings system and improve customer/pricing endpoints
Add centralized admin settings (company info, social links, quick calls, sidebar visibility toggles, theme, logo upload) with singleton pattern and full CRUD API. Add active/dedicated customer count endpoints for dashboard stats. Fix automatic assignment route to use PUT instead of GET. Refactor oil price endpoint to use schema serialization with null safety. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from app import db, ma
|
||||
from datetime import datetime
|
||||
import json
|
||||
|
||||
|
||||
class Admin_Company(db.Model):
|
||||
@@ -30,4 +31,30 @@ class Call(db.Model):
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True, index=True)
|
||||
current_phone = db.Column(db.String(500))
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
|
||||
|
||||
class Admin_Settings(db.Model):
|
||||
__tablename__ = 'admin_settings'
|
||||
__table_args__ = {"schema": "public"}
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
updated_at = db.Column(db.TIMESTAMP(), default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||
logo_base64 = db.Column(db.Text, nullable=True)
|
||||
logo_mime_type = db.Column(db.VARCHAR(50), nullable=True)
|
||||
company_name = db.Column(db.VARCHAR(250), default='Auburn Oil')
|
||||
link_facebook = db.Column(db.VARCHAR(500), nullable=True)
|
||||
link_google = db.Column(db.VARCHAR(500), nullable=True)
|
||||
link_website = db.Column(db.VARCHAR(500), nullable=True)
|
||||
link_google_review = db.Column(db.VARCHAR(500), nullable=True)
|
||||
quick_calls = db.Column(db.Text, nullable=True)
|
||||
show_automatics = db.Column(db.Boolean, default=True)
|
||||
show_stats = db.Column(db.Boolean, default=True)
|
||||
show_service = db.Column(db.Boolean, default=True)
|
||||
show_ticker = db.Column(db.Boolean, default=True)
|
||||
default_theme = db.Column(db.VARCHAR(50), default='ocean')
|
||||
|
||||
|
||||
class Admin_Settings_schema(ma.SQLAlchemyAutoSchema):
|
||||
class Meta:
|
||||
model = Admin_Settings
|
||||
Reference in New Issue
Block a user