"""Artist model.""" from sqlalchemy import func from db import db class ArtistMoment(db.Model): """ArtistMoment model.""" __tablename__ = "ArtistMoment" id = db.Column(db.BigInteger, primary_key=True) name = db.Column(db.String, nullable=False) artist_id = db.Column(db.Integer, db.ForeignKey("Artist.id", ondelete="CASCADE"), nullable=False) project_id = db.Column(db.Integer, db.ForeignKey("Project.id"), nullable=True) date = db.Column(db.Date, nullable=False) link = db.Column(db.String, nullable=True) notes = db.Column(db.String, nullable=True) type_id = db.Column(db.Integer, db.ForeignKey("ArtistMomentType.id"), nullable=True) category_id = db.Column(db.Integer, db.ForeignKey("ArtistMomentCategory.id"), nullable=True) metainfo = db.Column(db.JSON, nullable=False, server_default="{}") external_key = db.Column(db.String, nullable=True, unique=True) created_at = db.Column(db.TIMESTAMP(timezone=True), nullable=False, server_default=func.current_timestamp()) updated_at = db.Column(db.TIMESTAMP(timezone=True), nullable=False, server_default=func.current_timestamp()) create_user_id = db.Column(db.Integer, db.ForeignKey("User.id"), nullable=True) edit_user_id = db.Column(db.Integer, db.ForeignKey("User.id"), nullable=True) purchase_order_id = db.Column(db.BigInteger, db.ForeignKey("PRSPurchaseOrder.id"), nullable=True, index=True) territories = db.relationship("Territory", secondary="ArtistMomentTerritory") project = db.relationship("Project") artist = db.relationship("Artist") type = db.relationship("ArtistMomentType") category = db.relationship("ArtistMomentCategory") purchase_order = db.relationship("PRSPurchaseOrder") create_user = db.relationship("User", foreign_keys=[create_user_id]) edit_user = db.relationship("User", foreign_keys=[edit_user_id]) __table_args__ = (db.UniqueConstraint("external_key", name="uq_ArtistMoment_external_key"),) artist_moment_territory = db.Table( "ArtistMomentTerritory", db.Model.metadata, db.Column( "artist_moment_id", db.BigInteger, db.ForeignKey("ArtistMoment.id", ondelete="CASCADE"), primary_key=True ), db.Column("territory_id", db.BigInteger, db.ForeignKey("Territory.id", ondelete="CASCADE"), primary_key=True), )