Summary
Implement the full Country domain as the first step of the Phase 1 scraping pipeline.
Changes needed
Country SQLModel table with country_code (string PK), country_name, url_path (unique), and url @Property
CountryCreate, CountryRead (with @computed_field url), CountryUpdate schemas
CountryNotFoundError, CountryScrapingError exceptions
AbstractCountryRepository, AbstractCountryScraper interfaces
CountryRepository (async SQLModel implementation)
CountryService with get() and get_all()
- Alembic migration
b3c4e7a9f210_create_country_table
- Fix
TimestampMixin to use sa_type + sa_column_kwargs instead of shared sa_column=Column(...) instance
Summary
Implement the full Country domain as the first step of the Phase 1 scraping pipeline.
Changes needed
CountrySQLModel table withcountry_code(string PK),country_name,url_path(unique), andurl@PropertyCountryCreate,CountryRead(with@computed_field url),CountryUpdateschemasCountryNotFoundError,CountryScrapingErrorexceptionsAbstractCountryRepository,AbstractCountryScraperinterfacesCountryRepository(async SQLModel implementation)CountryServicewithget()andget_all()b3c4e7a9f210_create_country_tableTimestampMixinto usesa_type+sa_column_kwargsinstead of sharedsa_column=Column(...)instance