insert

abstract suspend fun insert(administrativeUnitNameEntity: AdministrativeUnitNameEntity): Long

Inserts a new AdministrativeUnitNameEntity object into the database.

This method is intended for Room to handle basic insert operations. For updates to AdministrativeUnitName, use insertOrUpdate instead.


abstract suspend fun insert(geoLocationEntity: GeoLocationEntity): Long

Inserts a new GeoLocationEntity object into the database.

This method is intended for Room to handle basic insert operations. For updates to AdministrativeUnitName, use insertOrUpdate instead.


open suspend fun insert(geoLocation: GeoLocation, administrativeUnitName: AdministrativeUnitName)

Inserts a GeoLocation along with its associated AdministrativeUnitName. This method uses a transaction to ensure data consistency.

  1. It calls insertOrUpdate to check if a similar AdministrativeUnitName (same locality and admin area) already exists in the database.

    • If an existing AdministrativeUnitName is found but its subAdminArea is null, it's updated with the provided subAdminArea.

    • If no matching AdministrativeUnitName is found or the existing one has a different subAdminArea, a new AdministrativeUnitName is inserted.

  2. Based on the result of insertOrUpdate (the AdministrativeUnitName entity ID), a new GeoLocationEntity is created with a foreign key reference to the corresponding AdministrativeUnitNameEntity.

Parameters

geoLocation

the GeoLocation data to insert.

administrativeUnitName

the AdministrativeUnitName data to insert.