-- Town objects for editor-placed props (barrel, stump, etc.)

CREATE TABLE IF NOT EXISTS public.town_objects (
    id bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    town_id bigint NOT NULL REFERENCES public.towns(id) ON DELETE CASCADE,
    object_type text NOT NULL,
    variant int NOT NULL DEFAULT 0,
    offset_x double precision NOT NULL DEFAULT 0,
    offset_y double precision NOT NULL DEFAULT 0,
    created_at timestamp with time zone NOT NULL DEFAULT now(),
    CONSTRAINT town_objects_object_type_check CHECK (object_type = ANY (ARRAY[
      'tree'::text,
      'rock'::text,
      'cart'::text,
      'barrel'::text,
      'bush'::text,
      'mushroom'::text,
      'leaves'::text,
      'stump'::text,
      'bones'::text,
      'ruin'::text
    ])),
    CONSTRAINT town_objects_variant_check CHECK (variant IN (0, 1))
);

CREATE INDEX IF NOT EXISTS idx_town_objects_town ON public.town_objects USING btree (town_id);
