# Generators: `enable_timescale` feature flag (default: True)

## Summary

All static generators now accept `enable_timescale` (default: True) to control Timescale classification and base selection. Disabling the flag turns off hypertable detection, prevents selecting Timescale bases, and disables Timescale-specific ingestion expectations (e.g., required `time`).

## Details

- Added flag to base and plumbed through all generators:
  - `BaseStaticGenerator(..., enable_timescale: bool = True)`
  - `XmlSchemaDjangoModelGenerator(..., enable_timescale=True)`
  - `StaticPydanticModelGenerator(..., enable_timescale=True)`
  - `DataclassDjangoModelGenerator(..., enable_timescale=True)`
- Classification and base selection are gated by the flag. When False:
  - No Timescale role scoring/classification runs.
  - Generators select the non-Timescale base class.
  - Models typically won’t declare a `time` field; ingestion will not perform timestamp alias remapping.

## Usage

```python
from pydantic2django.pydantic.generator import StaticPydanticModelGenerator

gen = StaticPydanticModelGenerator(
    output_path="/tmp/out.py",
    packages=["my_pkg"],
    app_label="my_app",
    enable_timescale=False,  # disable hypertables entirely
)
```

## Affected code

- `src/pydantic2django/core/base_generator.py` — flag introduced and stored on instances.
- `src/pydantic2django/xmlschema/generator.py` — classification/basing respects flag.
- `src/pydantic2django/pydantic/generator.py` — classification/basing respects flag.
- `src/pydantic2django/dataclass/generator.py` — classification/basing respects flag.
- Docs: `docs/how_it_works/timescale.md` updated with flag behavior and example.
- Tests: `tests/timescale/test_pydantic_timescale_flag.py` verifies flag behavior.

## Compatibility

- Default behavior unchanged (flag defaults to True).
- Provides a safe path for environments without TimescaleDB or when hypertables are undesired.
