use crate::registry::prelude::*;

pub static SANDVIKEN_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder()
    .name("Sandviken Energi Elnät AB")
    .vat_number("SE556011927201")
    .country(SE)
    .links(
        Links::builder()
            .fee_info(
                "https://sandvikenenergi.se/elnat/priserforelnat.187.html",
                ".pagecontent",
            )
            .build(),
    )
    .price_lists(&[
        PriceList::builder()
            .variant("16-25A")
            .from_date(2025, 1, 1)
            .monthly_fee(Cost::fuses(&[
                (16, Money::new(3716, 54).divide_by(12)),
                (20, Money::new(4609, 91).divide_by(12)),
                (25, Money::new(5737, 46).divide_by(12)),
            ]))
            .monthly_production_fee(Cost::Unverified)
            .feed_in_revenue(FeedInRevenue::fixed_subunit(3.0))
            .transfer_fee(TransferFee::fixed_subunit(29.62))
            .power_tariff(PowerTariff::NotImplemented)
            .build(),
        PriceList::builder()
            .variant("35-63A")
            .from_date(2025, 1, 1)
            .monthly_fee(Cost::fixed(9539, 10))
            .monthly_production_fee(Cost::Unverified)
            .feed_in_revenue(FeedInRevenue::fixed_subunit(3.0))
            .transfer_fee(TransferFee::none())
            .power_tariff(PowerTariff::new(
                TariffCalculationMethod::AverageHours(1),
                CostPeriods::new_first(&[
                    CostPeriod::builder()
                        .load(Base)
                        .month(January)
                        .fixed_cost(116, 39)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(February)
                        .fixed_cost(114, 31)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(March)
                        .fixed_cost(93, 53)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(April)
                        .fixed_cost(81, 18)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(May)
                        .fixed_cost(70, 89)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(June)
                        .fixed_cost(55, 83)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(July)
                        .fixed_cost(53, 02)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(August)
                        .fixed_cost(58, 10)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(September)
                        .fixed_cost(65, 82)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(October)
                        .fixed_cost(73, 94)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(November)
                        .fixed_cost(99, 26)
                        .build(),
                    CostPeriod::builder()
                        .load(Base)
                        .month(December)
                        .fixed_cost(119, 01)
                        .build(),
                ]),
            ))
            .build(),
    ])
    .build();
