import { AreaResponse } from './area.types';

export interface LocationResponse {
  id: number;
  name: string;
  provinceId: number;
  cityId: number;
  districtId: number;
  address: string;
  latitude: number | null;
  longitude: number | null;
  isDisabled: number;
  isDeleted: number;
  createdBy: number | null;
  updatedBy: number | null;
  createdAt: string;
  updatedAt: string;
  province: AreaResponse;
  city: AreaResponse;
  district: AreaResponse;
}

export interface CreateLocationRequest {
  name: string;
  provinceId: number;
  cityId: number;
  districtId: number;
  address: string;
  latitude?: number | null;
  longitude?: number | null;
  isDisabled?: number;
}

export interface UpdateLocationRequest {
  name?: string;
  provinceId?: number;
  cityId?: number;
  districtId?: number;
  address?: string;
  latitude?: number | null;
  longitude?: number | null;
  isDisabled?: number;
}

export interface LocationListQuery {
  page?: number;
  pageSize?: number;
  keyword?: string;
  provinceId?: number;
  cityId?: number;
  districtId?: number;
}

export interface LocationSearchQuery {
  keyword?: string;
  provinceId?: number;
  cityId?: number;
  districtId?: number;
  limit?: number;
}