memleketmeselesi/mm_api/models/location.py
Mukan Erkin 2498e75594 init: memleketmeselesi platform — API + migrations
FastAPI + PostgreSQL 16. KYC, issue sistemi, permission/group yönetimi,
session yönetimi, API client auth (kışla kapısı), officials/persons CRUD.
Migration 0001–0013 dahil.
2026-04-27 23:06:59 +03:00

65 lines
1.5 KiB
Python

from pydantic import BaseModel
from typing import Optional
from datetime import date, datetime
from enum import Enum
class LocationType(str, Enum):
ulke = "ulke"
bolge = "bolge"
il = "il"
ilce = "ilce"
bucak = "bucak"
belde = "belde"
koy = "koy"
mahalle = "mahalle"
diger = "diger"
class Location(BaseModel):
id: int
parent_id: Optional[int]
name: str
slug: str
type: LocationType
latitude: Optional[float]
longitude: Optional[float]
is_active: bool
created_at: datetime
updated_at: datetime
class LocationCreate(BaseModel):
parent_id: Optional[int] = None
name: str
slug: str
type: LocationType
latitude: Optional[float] = None
longitude: Optional[float] = None
class LocationRetype(BaseModel):
new_type: LocationType
change_reason: str
changed_by: Optional[int] = None # user_id
class LocationReparent(BaseModel):
new_parent_id: int
change_reason: str
changed_by: Optional[int] = None
class LocationSplitFrom(BaseModel):
source_id: int
effective_at: date
notes: Optional[str] = None
class LocationMerge(BaseModel):
source_ids: list[int] # birleşen lokasyonlar
target_id: int # hedef (varsa) veya yeni oluşturulacak
effective_at: date
notes: Optional[str] = None
change_reason: str
changed_by: Optional[int] = None