from datetime import datetime, timezone, timedelta from app.extensions import db from sqlalchemy.orm import relationship from sqlalchemy.sql import func import logging logger = logging.getLogger(__name__) 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.order_by(cls.description.asc()).all() if not country_list: return None return country_list @classmethod def set_country_status(cls, country_uid, code, val): logger.info(f" Data for set_country_status Data {country_uid} ,{code} {val}") country_data = cls.query.filter_by(uid=str(country_uid), code=str(code)).first() if not country_data: return None logger.info("UPDT::") country_data.status = int(val) return country_data @classmethod def set_country_signup(cls, country_uid, code, val): logger.info(f" Data for set_country_signup Data {country_uid} ,{code} {val}") country_data = cls.query.filter_by(uid=str(country_uid), code=str(code)).first() if not country_data: return None logger.info("UPDT::") country_data.signup = val return country_data 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); '''