from sqlalchemy import Column, DateTime, Enum, ForeignKey, Integer, String, Text, text from sqlalchemy.sql import func from database import Base class Users(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, autoincrement=True) social_id = Column(Text) type = Column(Integer) full_name = Column(String(255), index=True, unique=True) email = Column(String(255), index=True, unique=True) password = Column(String(255)) gender = Column(Integer) mobile = Column(String(255)) user_image = Column(String(255)) city_id = Column(Integer, ForeignKey("cities.id")) user_type = Column(Integer) otp = Column(String(255)) otp_valid_time = Column(DateTime) access_key = Column(Text) lang_type = Column(Integer) badge = Column(Integer) status = Column(Integer, server_default=text("0")) admin_status = Column(Integer, server_default=text("0")) device_id = Column(Text) device_type = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) class Cities(Base): __tablename__ = "cities" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(255)) image = Column(String(255)) status = Column(Enum("1", "0")) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class Games(Base): __tablename__ = "games" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(255)) image = Column(String(255)) date_time = Column(DateTime) price = Column(String(100)) description = Column(Text) user_id = Column(Integer, ForeignKey("users.id")) gender = Column(Enum("1", "2", "3")) city_id = Column(Integer, ForeignKey("cities.id")) venue_id = Column(Integer, ForeignKey("venues.id")) sports_id = Column(Integer, ForeignKey("sports.id")) no_of_player = Column(Integer) min_player = Column(Integer) already_player = Column(Integer) no_of_already_player = Column(Integer) payment_mode = Column(Integer) card_id = Column(Integer) status = Column(Integer, server_default=text("1")) game_status = Column(Integer, server_default=text("0")) cancel_status = Column(Integer) cancel_date = Column(DateTime) noti_status = Column(Integer, server_default=text("0")) conduct_status = Column(Integer, server_default=text("1")) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class Payments(Base): __tablename__ = "payments" id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey("users.id")) game_id = Column(Integer, ForeignKey("games.id")) amount = Column(Integer) token = Column(String(100)) charge_id = Column(String(200)) transfer_id = Column(String(200)) transaction_id = Column(String(200)) account_no = Column(String(200)) description = Column(Text) pay_mode = Column(Integer) status = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class PlayerAvailabilities(Base): __tablename__ = "player_availabilities" id = Column(Integer, primary_key=True, autoincrement=True) game_id = Column(Integer, ForeignKey("games.id")) player_id = Column(Integer, ForeignKey("users.id")) status = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class PlayerCancelGames(Base): __tablename__ = "player_cancel_games" id = Column(Integer, primary_key=True, autoincrement=True) player_id = Column(Integer, ForeignKey("users.id")) game_id = Column(Integer, ForeignKey("games.id")) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class PurchaseGames(Base): __tablename__ = "purchase_games" id = Column(Integer, primary_key=True, autoincrement=True) game_id = Column(Integer, ForeignKey("games.id")) user_id = Column(Integer, ForeignKey("users.id")) pay_mode = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class Sports(Base): __tablename__ = "sports" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(255)) spanish_name = Column(String(100)) status = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class Teams(Base): __tablename__ = "teams" id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey("users_id")) team_id = Column(Enum("1", "2")) game_id = Column(Integer, ForeignKey("games_id")) status = Column(Integer) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class UserRatings(Base): __tablename__ = "user_ratings" id = Column(Integer, primary_key=True, autoincrement=True) game_id = Column(Integer, ForeignKey("games_id")) user_id = Column(Integer, ForeignKey("users_id")) player_id = Column(Integer, ForeignKey("users_id")) rating = Column(String(100)) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) user_type = Column(Integer) class VenueImages(Base): __tablename__ = "venue_images" id = Column(Integer, primary_key=True, autoincrement=True) venue_id = Column(Integer, ForeignKey("venues_id")) user_id = Column(Integer, ForeignKey("users_id")) image = Column(String(255)) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class Venues(Base): __tablename__ = "venues" id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey("users_id")) address = Column(Text) latitude = Column(String(100)) longitude = Column(String(100)) name = Column(String(100)) sports_id = Column(Integer, ForeignKey("sports_id")) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class ViewNews(Base): __tablename__ = "view_news" id = Column(Integer, primary_key=True, autoincrement=True) news_id = Column(Integer) user_id = Column(Integer, ForeignKey("users_id")) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now()) class WebBookings(Base): __tablename__ = "web_bookings" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(255)) email = Column(String(255)) contact = Column(String(100)) message = Column(Text) game = Column(String(255)) city = Column(String(100)) created = Column(DateTime, nullable=False, server_default=func.now()) updated = Column(DateTime, nullable=True, onupdate=func.now())