from datetime import datetime, timezone, timedelta from app.extensions import db from sqlalchemy.orm import relationship from sqlalchemy.sql import func class Country(db.Model): __tablename__ = 'country' id = db.Column(db.Integer, primary_key=True, autoincrement=True) uid = db.Column(db.String(150), nullable=False) code = db.Column(db.String(2), nullable=False) description = db.Column(db.String(100), nullable=False) status = db.Column(db.Integer, nullable=False, default=0) signup = db.Column(db.Integer, nullable=False, default=0) added = db.Column(db.DateTime(timezone=True), server_default=func.now()) @classmethod def get_signup_countries(cls, signup): country_list = cls.query.filter_by(signup=signup).order_by(cls.description.asc()).all() if not country_list: return None return country_list @classmethod def get_all_countries(cls): country_list = cls.query.all() if not country_list: return None return country_list def to_dict(self): return { "id": self.id, "uid": str(self.uid), "code": self.code, "description": self.description, "status": self.status, "signup": self.signup, "added": self.added.isoformat() if self.added else None } ''' CREATE TABLE country ( id SERIAL, uid uuid DEFAULT uuid_generate_v4(), code VARCHAR(2) UNIQUE NOT NULL, description VARCHAR(100) UNIQUE NOT NULL, status INT DEFAULT 0, signup INT DEFAULT 0, added timestamp without time zone DEFAULT now() ); ALTER TABLE ONLY country ADD CONSTRAINT country_id_key UNIQUE (id); '''