package dto

type CreateSubdistrictRequest struct {
	Name       string `json:"name" binding:"required,min=2"`
	ProvinceID string `json:"province_id" binding:"required"`
	CityID     string `json:"city_id" binding:"required"`
	DistrictID string `json:"district_id" binding:"required"`
}

type CreateSubdistrictResponse struct {
	ID         string  `json:"id"`
	Name       *string `json:"name"`
	ProvinceID *string `json:"province_id"`
	CityID     *string `json:"city_id"`
	DistrictID *string `json:"district_id"`
	MerchantID *string `json:"merchant_id"`
}

type SubdistrictFilterAllRequest struct {
	ID         string `json:"id" form:"id"`
	Name       string `json:"name" form:"name"`
	ProvinceID string `json:"province_id" form:"province_id"`
	CityID     string `json:"city_id" form:"city_id"`
	DistrictID string `json:"district_id" form:"district_id"`
	MerchantID string `json:"merchant_id" form:"merchant_id"`
}

type UpdateSubdistrictRequest struct {
	Name       string `json:"name" binding:"required,min=2"`
	ProvinceID string `json:"province_id" binding:"required"`
	CityID     string `json:"city_id" binding:"required"`
	DistrictID string `json:"district_id" binding:"required"`
}

type ImportSubdistrictResponse struct {
	JobID     string      `json:"job_id,omitempty"`
	TotalRows int         `json:"total_rows"`
	Imported  int         `json:"imported"`
	Skipped   int         `json:"skipped"`
	Logs      []ImportLog `json:"logs"`
	Errors    []string    `json:"errors"`
	IsAsync   bool        `json:"is_async"`
	Message   string      `json:"message,omitempty"`
}
