import { ResponseApi } from "./response.types"; import { CacheState, ErrorState, SelectState } from "./store.types"; export interface TowerRepositoryProps { getAll: () => Promise; getTowerById: (id: string) => Promise; createTower: (tower: TowerRequest) => Promise, "status">>; updateTower: (id: string, tower: TowerRequest) => Promise, "status">>; getDeviceSelect: () => Promise; } export interface Tower { id: string; tower_code: string; longitude: string | number; latitude: string | number; device_id?: string | number | null created_at: string; updated_at: string; } export interface TowerRequest extends Omit {} /** * Tower State * ============= */ export interface TowerState extends ErrorState, CacheState { data?: TowerDataTable[]; tower?: Tower | null; isLoading: boolean; lastUpdate: number | null; deviceSelect: SelectState[] | null; getDeviceSelect: () => Promise; getAll: () => Promise; find: (id: string) => Promise; create: (tower: TowerRequest) => Promise; update: (id: string, tower: TowerRequest) => Promise; clearTower: () => void; } export interface TowerDataTable extends Pick { address: string; device_code: string; } export interface IGetDeviceSelect { id: string; device_code: string; }