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