36 lines
1.6 KiB
Python
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)
|