dailyoverview/models.py

36 lines
1.6 KiB
Python

from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
db = SQLAlchemy()
class Company(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False, unique=True)
tickets = db.relationship('Ticket', backref='company', lazy=True)
onsites = db.relationship('Onsite', backref='company', lazy=True)
class Ticket(db.Model):
id = db.Column(db.Integer, primary_key=True)
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
name = db.Column(db.String(100), nullable=False)
subject = db.Column(db.String(100), nullable=False)
ticket_number = db.Column(db.String(100), nullable=False)
status = db.Column(db.String(10), nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
closed_at = db.Column(db.DateTime, nullable=True)
archived = db.Column(db.Boolean, default=False, nullable=False)
class Note(db.Model):
id = db.Column(db.Integer, primary_key=True)
ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id'), nullable=False)
note = db.Column(db.Text, nullable=False)
archive = db.Column(db.Boolean, default=False, nullable=False)
created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
ticket = db.relationship('Ticket', backref=db.backref('notes', lazy=True))
class Onsite(db.Model):
id = db.Column(db.Integer, primary_key=True)
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
day_of_week = db.Column(db.String(10), nullable=False)
note = db.Column(db.Text, nullable=False)