country model

This commit is contained in:
CHIEFSOFT\ameye
2025-10-06 06:02:24 -04:00
parent 2558b51aa4
commit 3d4fbba98e
7 changed files with 322 additions and 7 deletions
+247
View File
@@ -902,6 +902,253 @@ grant all privileges on database merms_panel to merms_panel;
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);
ALTER TABLE country OWNER TO merms_panel;
INSERT INTO country(code,description) VALUES('AC','Acension Island');
INSERT INTO country(code,description) VALUES('AF','Afghanistan');
INSERT INTO country(code,description) VALUES('AL','Albania');
INSERT INTO country(code,description) VALUES('DZ','Algeria');
INSERT INTO country(code,description) VALUES('AS','American Samoa');
INSERT INTO country(code,description) VALUES('AD','Andorra');
INSERT INTO country(code,description) VALUES('AO','Angola');
INSERT INTO country(code,description) VALUES('AI','Anguilla');
INSERT INTO country(code,description) VALUES('AG','Antigua');
INSERT INTO country(code,description) VALUES('AR','Argentina');
INSERT INTO country(code,description) VALUES('AM','Armenia');
INSERT INTO country(code,description) VALUES('AW','Aruba');
INSERT INTO country(code,description) VALUES('AT','Austria');
INSERT INTO country(code,description) VALUES('AZ','Azerbaijan');
INSERT INTO country(code,description) VALUES('BS','Bahamas');
INSERT INTO country(code,description) VALUES('BH','Bahrain');
INSERT INTO country(code,description) VALUES('BD','Bangladesh');
INSERT INTO country(code,description) VALUES('BB','Barbados');
INSERT INTO country(code,description) VALUES('BY','Belarus');
INSERT INTO country(code,description) VALUES('BE','Belgium');
INSERT INTO country(code,description) VALUES('BZ','Belize');
INSERT INTO country(code,description) VALUES('BJ','Benin');
INSERT INTO country(code,description) VALUES('BM','Bermuda');
INSERT INTO country(code,description) VALUES('BT','Bhutan');
INSERT INTO country(code,description) VALUES('BO','Bolivia');
INSERT INTO country(code,description) VALUES('BA','Bosnia Herzegovina');
INSERT INTO country(code,description) VALUES('BW','Botswana');
INSERT INTO country(code,description) VALUES('BR','Brazil');
INSERT INTO country(code,description) VALUES('BN','Brunei');
INSERT INTO country(code,description) VALUES('BG','Bulgaria');
INSERT INTO country(code,description) VALUES('BF','Burkina Faso');
INSERT INTO country(code,description) VALUES('BI','Burundi');
INSERT INTO country(code,description) VALUES('KH','Cambodia');
INSERT INTO country(code,description) VALUES('CM','Cameroon');
INSERT INTO country(code,description) VALUES('CV','Cape Verde');
INSERT INTO country(code,description) VALUES('KY','Cayman Islands');
INSERT INTO country(code,description) VALUES('CF','Central African Republic');
INSERT INTO country(code,description) VALUES('TD','Chad');
INSERT INTO country(code,description) VALUES('CL','Chile');
INSERT INTO country(code,description) VALUES('CN','China');
INSERT INTO country(code,description) VALUES('CO','Colombia');
INSERT INTO country(code,description) VALUES('KM','Comoros Islands');
INSERT INTO country(code,description) VALUES('CD','Congo Democratic Republic');
INSERT INTO country(code,description) VALUES('CG','Congo Republic');
INSERT INTO country(code,description) VALUES('CK','Cook Islands');
INSERT INTO country(code,description) VALUES('CR','Costa Rica');
INSERT INTO country(code,description) VALUES('HR','Croatia');
INSERT INTO country(code,description) VALUES('CU','Cuba');
INSERT INTO country(code,description) VALUES('CY','Cyprus');
INSERT INTO country(code,description) VALUES('CZ','Czech Republic');
INSERT INTO country(code,description) VALUES('DK','Denmark');
INSERT INTO country(code,description) VALUES('DG','Diego Garcia');
INSERT INTO country(code,description) VALUES('DJ','Djibouti');
INSERT INTO country(code,description) VALUES('DM','Dominica');
INSERT INTO country(code,description) VALUES('DO','Dominican Republic');
INSERT INTO country(code,description) VALUES('EC','Ecuador');
INSERT INTO country(code,description) VALUES('EG','Egypt');
INSERT INTO country(code,description) VALUES('SV','El Salvador');
INSERT INTO country(code,description) VALUES('GQ','Equatorial Guinea');
INSERT INTO country(code,description) VALUES('ER','Eritrea');
INSERT INTO country(code,description) VALUES('EE','Estonia');
INSERT INTO country(code,description) VALUES('ET','Ethiopia');
INSERT INTO country(code,description) VALUES('FO','Faeroe Islands');
INSERT INTO country(code,description) VALUES('FK','Falkland Islands (Malvinas)');
INSERT INTO country(code,description) VALUES('FJ','Fiji Islands');
INSERT INTO country(code,description) VALUES('FI','Finland');
INSERT INTO country(code,description) VALUES('FR','France');
INSERT INTO country(code,description) VALUES('TF','French Antilles (Martinique)');
INSERT INTO country(code,description) VALUES('GF','French Guiana');
INSERT INTO country(code,description) VALUES('PF','French Polynesia');
INSERT INTO country(code,description) VALUES('GA','Gabon');
INSERT INTO country(code,description) VALUES('GM','Gambia');
INSERT INTO country(code,description) VALUES('GE','Georgia');
INSERT INTO country(code,description) VALUES('DE','Germany');
INSERT INTO country(code,description) VALUES('GI','Gibraltar');
INSERT INTO country(code,description) VALUES('GR','Greece');
INSERT INTO country(code,description) VALUES('GL','Greenland');
INSERT INTO country(code,description) VALUES('GD','Grenada');
INSERT INTO country(code,description) VALUES('GP','Guadeloupe');
INSERT INTO country(code,description) VALUES('GU','Guam');
INSERT INTO country(code,description) VALUES('GT','Guatemala');
INSERT INTO country(code,description) VALUES('GN','Guinea');
INSERT INTO country(code,description) VALUES('GH','Ghana');
INSERT INTO country(code,description) VALUES('GW','Guinea Bissau');
INSERT INTO country(code,description) VALUES('GY','Guyana');
INSERT INTO country(code,description) VALUES('HT','Haiti');
INSERT INTO country(code,description) VALUES('HN','Honduras');
INSERT INTO country(code,description) VALUES('HK','Hong Kong');
INSERT INTO country(code,description) VALUES('HU','Hungary');
INSERT INTO country(code,description) VALUES('IS','Iceland');
INSERT INTO country(code,description) VALUES('IN','India');
INSERT INTO country(code,description) VALUES('ID','Indonesia');
INSERT INTO country(code,description) VALUES('IR','Iran');
INSERT INTO country(code,description) VALUES('IQ','Iraq');
INSERT INTO country(code,description) VALUES('IE','Ireland');
INSERT INTO country(code,description) VALUES('IL','Israel');
INSERT INTO country(code,description) VALUES('IT','Italy');
INSERT INTO country(code,description) VALUES('CI','Ivory Coast');
INSERT INTO country(code,description) VALUES('JP','Japan');
INSERT INTO country(code,description) VALUES('JO','Jordan');
INSERT INTO country(code,description) VALUES('KZ','Kazakhstan');
INSERT INTO country(code,description) VALUES('KE','Kenya');
INSERT INTO country(code,description) VALUES('KI','Kiribati');
INSERT INTO country(code,description) VALUES('KW','Kuwait');
INSERT INTO country(code,description) VALUES('KG','Kyrgyzstan');
INSERT INTO country(code,description) VALUES('LA','Laos');
INSERT INTO country(code,description) VALUES('LV','Latvia');
INSERT INTO country(code,description) VALUES('LB','Lebanon');
INSERT INTO country(code,description) VALUES('LS','Lesotho');
INSERT INTO country(code,description) VALUES('LR','Liberia');
INSERT INTO country(code,description) VALUES('LY','Libya');
INSERT INTO country(code,description) VALUES('LI','Liechtenstein');
INSERT INTO country(code,description) VALUES('LT','Lithuania');
INSERT INTO country(code,description) VALUES('LU','Luxembourg');
INSERT INTO country(code,description) VALUES('MO','Macau');
INSERT INTO country(code,description) VALUES('MK','Macedonia');
INSERT INTO country(code,description) VALUES('MG','Madagascar');
INSERT INTO country(code,description) VALUES('MW','Malawi');
INSERT INTO country(code,description) VALUES('MY','Malaysia');
INSERT INTO country(code,description) VALUES('MV','Maldives');
INSERT INTO country(code,description) VALUES('ML','Mali');
INSERT INTO country(code,description) VALUES('MT','Malta');
INSERT INTO country(code,description) VALUES('MH','Marshall Islands');
INSERT INTO country(code,description) VALUES('MR','Mauritania');
INSERT INTO country(code,description) VALUES('MU','Mauritius');
INSERT INTO country(code,description) VALUES('MX','Mexico');
INSERT INTO country(code,description) VALUES('MD','Moldova');
INSERT INTO country(code,description) VALUES('MC','Monaco');
INSERT INTO country(code,description) VALUES('MN','Mongolia');
INSERT INTO country(code,description) VALUES('MS','Montserrat');
INSERT INTO country(code,description) VALUES('MA','Morocco');
INSERT INTO country(code,description) VALUES('MZ','Mozambique');
INSERT INTO country(code,description) VALUES('MM','Myanmar');
INSERT INTO country(code,description) VALUES('NA','Namibia');
INSERT INTO country(code,description) VALUES('NR','Nauru');
INSERT INTO country(code,description) VALUES('NP','Nepal');
INSERT INTO country(code,description) VALUES('NL','Netherlands');
INSERT INTO country(code,description) VALUES('AN','Netherlands Antilles');
INSERT INTO country(code,description) VALUES('NC','New Caledonia');
INSERT INTO country(code,description) VALUES('NI','Nicaragua');
INSERT INTO country(code,description) VALUES('NE','Niger');
INSERT INTO country(code,description) VALUES('NN','Niue');
INSERT INTO country(code,description) VALUES('KP','North Korea');
INSERT INTO country(code,description) VALUES('NO','Norway');
INSERT INTO country(code,description) VALUES('OM','Oman');
INSERT INTO country(code,description) VALUES('PK','Pakistan');
INSERT INTO country(code,description) VALUES('PW','Palau');
INSERT INTO country(code,description) VALUES('PL','Palestine');
INSERT INTO country(code,description) VALUES('PA','Panama');
INSERT INTO country(code,description) VALUES('PG','Papua New Guinea');
INSERT INTO country(code,description) VALUES('PY','Paraguay');
INSERT INTO country(code,description) VALUES('PE','Peru');
INSERT INTO country(code,description) VALUES('PH','Philippines');
INSERT INTO country(code,description) VALUES('PT','Portugal');
INSERT INTO country(code,description) VALUES('PR','Puerto Rico');
INSERT INTO country(code,description) VALUES('QA','Qatar');
INSERT INTO country(code,description) VALUES('RE','Reunion Island');
INSERT INTO country(code,description) VALUES('RO','Romania');
INSERT INTO country(code,description) VALUES('RU','Russia');
INSERT INTO country(code,description) VALUES('RW','Rwanda');
INSERT INTO country(code,description) VALUES('SH','Saint Helena');
INSERT INTO country(code,description) VALUES('KN','Saint Kitts and Nevis');
INSERT INTO country(code,description) VALUES('LC','Saint Lucia');
INSERT INTO country(code,description) VALUES('SP','Saint Pierre and Miquelon');
INSERT INTO country(code,description) VALUES('VC','Saint Vincent and The Grenadines');
INSERT INTO country(code,description) VALUES('SM','San Marino');
INSERT INTO country(code,description) VALUES('JM','Jamaica');
INSERT INTO country(code,description) VALUES('ST','Sao Tome and Principe');
INSERT INTO country(code,description) VALUES('SA','Saudi Arabia');
INSERT INTO country(code,description) VALUES('SN','Senegal');
INSERT INTO country(code,description) VALUES('CS','Serbia and Montenegro');
INSERT INTO country(code,description) VALUES('SC','Seychelles');
INSERT INTO country(code,description) VALUES('SL','Sierra Leone');
INSERT INTO country(code,description) VALUES('SK','Slovakia');
INSERT INTO country(code,description) VALUES('SI','Slovenia');
INSERT INTO country(code,description) VALUES('SB','Solomon Islands');
INSERT INTO country(code,description) VALUES('SO','Somalia');
INSERT INTO country(code,description) VALUES('KR','South Korea');
INSERT INTO country(code,description) VALUES('ES','Spain');
INSERT INTO country(code,description) VALUES('LK','Sri Lanka');
INSERT INTO country(code,description) VALUES('SD','Sudan');
INSERT INTO country(code,description) VALUES('SR','Suriname');
INSERT INTO country(code,description) VALUES('SZ','Swaziland');
INSERT INTO country(code,description) VALUES('SE','Sweden');
INSERT INTO country(code,description) VALUES('CH','Switzerland');
INSERT INTO country(code,description) VALUES('SY','Syria');
INSERT INTO country(code,description) VALUES('TW','Taiwan');
INSERT INTO country(code,description) VALUES('TJ','Tajikistan');
INSERT INTO country(code,description) VALUES('TZ','Tanzania');
INSERT INTO country(code,description) VALUES('TH','Thailand');
INSERT INTO country(code,description) VALUES('TG','Togo');
INSERT INTO country(code,description) VALUES('TO','Tonga');
INSERT INTO country(code,description) VALUES('TT','Trinidad and Tobago');
INSERT INTO country(code,description) VALUES('TN','Tunisia');
INSERT INTO country(code,description) VALUES('TR','Turkey');
INSERT INTO country(code,description) VALUES('TM','Turkmenistan');
INSERT INTO country(code,description) VALUES('TC','Turks and Caicos');
INSERT INTO country(code,description) VALUES('TV','Tuvalu');
INSERT INTO country(code,description) VALUES('UG','Uganda');
INSERT INTO country(code,description) VALUES('UA','Ukraine');
INSERT INTO country(code,description) VALUES('AE','United Arab Emirates');
INSERT INTO country(code,description) VALUES('UY','Uruguay');
INSERT INTO country(code,description) VALUES('UZ','Uzbekistan');
INSERT INTO country(code,description) VALUES('VU','Vanuatu');
INSERT INTO country(code,description) VALUES('VE','Venezuela');
INSERT INTO country(code,description) VALUES('VN','Vietnam');
INSERT INTO country(code,description) VALUES('BV','Virgin Islands (British)');
INSERT INTO country(code,description) VALUES('VI','Virgin Islands (U.S.)');
INSERT INTO country(code,description) VALUES('00','Virtual');
INSERT INTO country(code,description) VALUES('WF','Wallis and Futuna');
INSERT INTO country(code,description) VALUES('EH','Western Samoa');
INSERT INTO country(code,description) VALUES('YE','Yemen');
INSERT INTO country(code,description) VALUES('ZR','Zaire');
INSERT INTO country(code,description) VALUES('ZM','Zambia');
INSERT INTO country(code,description) VALUES('ZW','Zimbabwe');
INSERT INTO country(code,description) VALUES('US','United States');
INSERT INTO country(code,description) VALUES('NG','Nigeria');
INSERT INTO country(code,description) VALUES('AU','Australia');
INSERT INTO country(code,description) VALUES('CA','Canada');
INSERT INTO country(code,description) VALUES('NZ','New Zealand');
INSERT INTO country(code,description) VALUES('SG','Singapore');
INSERT INTO country(code,description) VALUES('ZA','South Africa');
INSERT INTO country(code,description) VALUES('GB','United Kingdom');
UPDATE country SET signup=1, status = 1 WHERE code IN ('US','CA','GB', 'NG', 'NL', 'NZ', 'ZA');
+9 -1
View File
@@ -13,9 +13,10 @@ from app.api.services import (
SubscriptionsService,
CommonDataService,
OfficeCustomerService,
GenerativesService, OfficeUsersService, OfficeTemplatesService
GenerativesService, OfficeUsersService, OfficeTemplatesService, OfficeCountryService
)
from app.api.services.comments import CommentsService
from app.models import Country
from app.utils.logger import logger
from app.api.middlewares import enforce_json, require_auth
import os
@@ -381,6 +382,13 @@ def get_dashboard():
result = OfficeDashboardService.get_dashboard_data()
return jsonify(result)
@api.route('/office/country', methods=['GET'])
# @token_required
def get_office_country():
# Call the dashboard service
result = OfficeCountryService.get_office_country_list()
return jsonify(result)
@api.route('/office/customers', methods=['GET'])
# @token_required
+1
View File
@@ -17,4 +17,5 @@ from app.api.services.office_customer import OfficeCustomerService
from app.api.services.office_dashboard import OfficeDashboardService
from app.api.services.office_users import OfficeUsersService
from app.api.services.office_templates import OfficeTemplatesService
from app.api.services.office_country import OfficeCountryService
+40
View File
@@ -0,0 +1,40 @@
from flask import jsonify
from app.utils.logger import logger
from app.api.services.base_service import BaseService
from sqlalchemy import func, desc
from datetime import datetime, timedelta, timezone
from app.extensions import db
from app.models import Country
class OfficeCountryService(BaseService):
@staticmethod
def get_office_country_list(filters):
logger.info('ENTER API::get get_office_country_list')
try:
account_result_data =[]
account_result = Country.get_all_countries()
if account_result:
for t in account_result:
account_result_data.append({
'id': t.id,
'uid': t.uid,
'code': t.code,
'description': t.description,
'status': t.status,
'signup': t.signup,
})
account_result = {
"country_data":account_result_data,
}
logger.info('RETURN API::get office account view')
logger.info(account_result)
return account_result
except Exception as e:
logger.error(f"An error occurred while get_office_country_list data: {str(e)}", exc_info=True)
return jsonify({"message": "Internal Server Error"}), 500
+12 -5
View File
@@ -184,15 +184,22 @@ class ProductsService(BaseService):
}
return ResponseHelper.success(data=response_data)
MembersProductsRefresh.create_subscription_refresh(member_id,product_id, subscription_uid)
# if memberSubscription.uid != subscription_uid :
activeRefresh = MembersProductsRefresh.get_active_refresh_by_subscription_uid(subscription_uid)
if activeRefresh:
return {
"message": "Invalid Refresh",
"error_message": "Current active refresh found- please wait for 2 to 5 minutes and try again",
"member_id":member_id,
"uid": member_data.uid,
}, 400
#products = MembersProducts.get_member_productlist_by_member_id(member_id)
plannedRefresh = MembersProductsRefresh.create_subscription_refresh(member_id,product_id, subscription_uid)
# Simulate processing
response_data = {
"products_data": [],
"message": "Rebuild Planned - will be completed in 90 seconds",
"error_message": "",
"refresh_uid": plannedRefresh.uid,
"member_id":member_id,
"uid": member_data.uid,
}
+7
View File
@@ -22,6 +22,13 @@ class Country(db.Model):
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,
+6 -1
View File
@@ -30,7 +30,12 @@ class MembersProductsRefresh(db.Model):
updated = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
@classmethod
def get_active_refresh_by_subscription_uid(cls, subscription_uid):
refresh_product = cls.query.filter_by(subscription_uid=str(subscription_uid), status=0).all()
if not refresh_product:
return None
return refresh_product
@classmethod