src/main/scala/fis/geo/model/GeoSchema.scala
author Tomas Zeman <tzeman@volny.cz>
Fri, 10 Feb 2012 09:53:05 +0100
changeset 9 fe20033afdf1
child 23 16066379860c
permissions -rw-r--r--
bf245fe6966abb9a Geo entities (address, city, country)

/*
 * Copyright 2011 Tomas Zeman <tzeman@volny.cz>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package fis.geo.model

import fis.base.model.BaseSchema
import net.liftweb.squerylrecord.RecordTypeMode._

trait GeoSchema extends BaseSchema {
  val cities = entityTable[City]("city")
  val addresses = table[Address]("address")
  val countries = entityTable[Country]("country")

  val cityToAddresses = oneToManyRelation(cities, addresses).
    via((c, a) => c.id === a.cityId)

  val countryToCities = oneToManyRelation(countries, cities).
    via((country, city) => country.id === city.countryId)
}

object GeoSchema extends GeoSchema

// vim: set ts=2 sw=2 et: