from sqlalchemy import Column, Integer, String, Text, TIMESTAMP, func from geoalchemy2 import Geometry from app.models.base import Base class Peak(Base): __tablename__ = "peaks" id = Column(Integer, primary_key=True, index=True) name_en = Column(String(100), unique=True, nullable=False) name_cn = Column(String(100)) elevation_m = Column(Integer, nullable=False) prominence_m = Column(Integer) # PostGIS Point: SRID 4326 (WGS84) location = Column(Geometry("POINT", srid=4326)) first_ascent_year = Column(Integer) description = Column(Text) thumbnail_url = Column(String(255)) created_at = Column(TIMESTAMP(timezone=True), server_default=func.now()) updated_at = Column(TIMESTAMP(timezone=True), server_default=func.now(), onupdate=func.now())